2012-04-28 6 views
0

実際に私はC#4.0を使ってasp.netでオンラインテスト/試験のウェブサイトを作っています。また、試験を受けるには、ボタンをクリックする必要があります。このボタンをクリックすると、JavaScript機能付きのウィンドウが開きます。確認方法ブラウザーの "mywindow"タブがasp.net 4.0でアクティブかどうかを確認しますか?

function OpenForm() { 
window.open('Test.aspx', 'mywindow', 
'fullscreen=yes,titlebar=no,toolbar=no,statusbar=no,menubar=no'); 

}

、ユーザーがそのタブを変更したり、私は、ウィンドウを閉じたい彼/彼女のPCでフォルダを開く場合、私がしたい事は、試験は、起こっているされている間、すなわち「mywindowは"私はこれを達成するためにasp.netで可能なことを知っているので、私はJavaScriptやjQueryでこれを達成する方法を知りたいですか?

私はいくつかの回答をネットから検索しています。今は、 "test.aspx"または "mywindow"ページが読み込まれるたびにJavaScript関数を呼び出す方法を知っています。

<form id="form1" runat="server"> 

    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
<script type="text/javascript"> 

function endRequestHandler(sender, args) 
{ 
    yourFunction(); 
} 

function yourFunction() 
{ 

    alert("aaa"); 
} 


function pageLoad() 
{ 
    if(!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) 
     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler); 

} 
</script> 


    <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 

     <ContentTemplate> 
      <asp:Timer ID="Timer1" runat="server" Interval="6000"> 

      </asp:Timer> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</form> 

が//私ははい、私は警告のメッセージが表示されます場合は、「mywindowは」または「Test.aspxという」がアクティブであるかどうかをチェックするためにyourFunction()内のロジックを右する必要があります(「uが失格しています")を閉じてから" test.aspx "を閉じてください

誰か助けてください!お願いします...!!

答えて

1

これは私がやった方法です...私はChrome/Opera/Firefox/IEでテストしました... IEでは、自動的に閉じた他のすべてのウィンドウを閉じるための許可を求めました....現時点でIEのバグを回避する。

<script src="../../Scripts/jquery-1.5.1.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $(window).focus(); 
    $(window).blur(function() { 
     window.opener.BadStudent(); 
     window.close(); 
    }); 
    $('#close').click(function() { 
     window.close(); 
    }); 
}); 
</script> 

EDIT:このスクリプトは、最終ページに配置されます。また、フォーム要素を追加して、子要素が選択されたときにウィンドウが閉じないようにしました。問題はありませんでした。

EDIT 2:IEのバグは、javascriptがウィンドウを開かないためでした。そう... <a href="#" id="OpenWindow">Link</a>

、その後...

<script type="text/javascript"> 
     function BadStudent() { 
      alert("Your a bad student"); 
     }; 
     $(document).ready(function(){ 
      $('#OpenWindow').click(function(e){ 
       e.preventDefault(); 
       Popup = window.open("@Url.Action("test")").focus(); 
      }); 
     }); 
</script> 

子ウィンドウに行くまだ有効であるスクリプトを使用しinsted。これはセレクタに対してjQueryを使用して行われました。

+0

Jared氏に感謝します。私は私のプロジェクトでこれを試してみて、問題があるかどうかを知らせます。 Anywayzはたくさんのことをする。 :) –

+0

@SubhojitMukherjee問題ありません。質問をして助けを受けるたびに、これが最初の投稿です。その答えがあなたの問題を解決するならば、答えを受け入れ、それをupvoteしてください(あなたの評価と答えた人に役立ちます)。 – Jared

関連する問題