$(document).ready(function () {
function EndSession() {

            window.close();
        };

       setTimeout("EndSession()", 10000);

});


上面显示的是使用window.open()打开的子页面中的代码。

问题是尝试调用EndSession十秒钟后,它引发了错误
“ Microsoft JScript运行时错误:'EndSession'未定义”

这里发生了什么?

最佳答案

也许“字符串”的旧方法的问题在于它正在全局范围内寻找方法,而该方法是在用于jQuery ready的函数中定义的。

如果有适当的引用,我们可以显式传递我们真正想要的函数。

咱们试试吧:

$(document).ready(function () {
    var endSession = function() {
        window.close();
    };

    setTimeout(endSession, 10000);
});


尽管我还没有尝试过,但也许可以使用:

$(document).ready(function () {
    setTimeout(window.close, 10000);
});


我不确定您是否也需要准备好jQuery,除非您有意要在文档完全加载后开始计时(我希望很快会出现一个很快关闭的弹出窗口)。

10-08 00:12