jQuery未关闭窗口

jQuery未关闭窗口,jquery,window,Jquery,Window,我正在为一个电子商务网站制作一个表单,供用户请求关于某个项目的PDF。 表单工作正常,并将用户发送到“感谢”页面。 在感谢页面上,我让jQuery设置一个间隔,在5秒后关闭窗口。 但它不起作用,在链接中嵌入close命令也不起作用。 但是,如果在新选项卡中打开“感谢”页面,则间隔将起作用 以下是php文件中的代码(在表单成功提交后调用) /*结果呈现为HTML*/ $theResults=@MDN(Mozilla文档) 仅允许使用此方法 调用由打开的窗口 使用window.open方法的脚本。

我正在为一个电子商务网站制作一个表单,供用户请求关于某个项目的PDF。 表单工作正常,并将用户发送到“感谢”页面。 在感谢页面上,我让jQuery设置一个间隔,在5秒后关闭窗口。 但它不起作用,在链接中嵌入close命令也不起作用。 但是,如果在新选项卡中打开“感谢”页面,则间隔将起作用

以下是php文件中的代码(在表单成功提交后调用)

/*结果呈现为HTML*/
$theResults=@MDN(Mozilla文档)

仅允许使用此方法 调用由打开的窗口 使用window.open方法的脚本。 如果窗户没有被人打开 脚本中出现以下错误: JavaScript控制台:脚本可以 不关闭未打开的窗口 按剧本

W3C同意:

窗口对象上的close()方法 应该,如果相应的浏览 上下文是一种辅助浏览 由脚本创建的上下文 (与政府的行动相反) 用户),并且如果 调用该方法的脚本是 允许浏览网页 上下文A,关闭浏览上下文 A(也可以丢弃它)


尝试获取对窗口的引用。如果使用window.open(),请尝试以下操作:

var wind = window.open(params);// then close..
wind.close();

我在Google Chrome上试用了你的代码,现在可以用了

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function()
{
    //wait a few seconds and close the window
    setInterval(function()
    {
        window.close();
    }, 5000);
});
</script>

结果是一条警告消息,询问用户权限级别。也许这不是最好的办法。也许,您可以将用户重定向到相关的位置,而不是关闭窗口。

实际上,您应该避免需要新的窗口,并且关闭它们,这是经常被阻止的。如果您需要一个弹出窗口,请创建一个覆盖。正如@Orbling所说,您的场景看起来更像是jQuery的一个糟糕用法。稍后我可能会将其转换为覆盖窗口,但现在我正在寻找一个弹出窗口。啊哈!因此,由于这是一个弹出式表单,我需要用javascript触发窗口打开。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$(document).ready(function()
{
    //wait a few seconds and close the window
    setInterval(function()
    {
        window.close();
    }, 5000);
});
</script>
$(document).ready(function()
{
function closeWindow() {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
    alert("This will close the window");
    window.open('','_self');
    window.close();
}
    //wait a few seconds and close the window
    setInterval(function()
    {
        window.close();
        closeWindow();
    }, 5000);
});