0

实际上,我正在使用 c# 4.0 在 asp.net 中制作在线测试/考试网站。为了进行考试,用户需要单击一个按钮,该按钮将打开一个带有 JavaScript 功能的窗口。

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

}

我想要的是,在考试进行时,如果用户更改其选项卡或在他/她的电脑中打开一个文件夹,那么我想关闭窗口,即“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> 

//我需要纠正 yourFunction() 中的逻辑以检查“mywindow”或“test.aspx”是否处于活动状态,如果是,我将在 alert(“u are disqualified”) 上显示一条消息,然后关闭“测试.aspx"

请有人帮我解决这个问题!!!请...!!

4

1 回答 1

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>

编辑:这个脚本被放置在他们最终会出现的页面上。我还添加了一个表单元素,以确保在选择子元素时窗口不会关闭并且我没有任何问题。

编辑 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>

子窗口上的脚本仍然有效。这也是使用 jQuery 作为选择器完成的。

于 2012-04-28T04:16:48.940 回答