window.close(); 在Firefox中无法工作

5

在点击关闭按钮后,当前窗口在Firefox中无法关闭,但在IE中可以正常工作。

function closeWin() {
    var d=window.opener;
    try {
        var param="";
        var winHref=d.document.location.href;
        if(winHref.indexOf("?") > -1){
         param=winHref.substr(winHref.indexOf("?"));
        }
        //d.document.location.href=d.document.forms[0].thankyouurl.value+'?'+param;
        d.document.location.href=d.document.getElementsByName('thankyouurl')[0].value+'?'+param;
    }
    catch(e){}
    finally{}
    window.close();
    return true;
}
<input type="button" name="Button" value="Close" onClick="return closeWin();">


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Jaromanda X
1个回答

5

如果页面不是由脚本打开的,你无法使用window.close()在Firefox中关闭页面。因此,你需要欺骗Firefox认为你是通过脚本打开它的。以下方法可行:

function closeWindow() { 
  window.open('','_parent',''); 
  window.close(); 
}

现在只需在需要关闭窗口时调用closeWindow()函数即可。这个方法在其他浏览器中也适用。


2
尝试过了,在火狐浏览器里不起作用。有人尝试过吗?还有其他的解决方案/变通方法吗? - user761100
@user761100 当页面在新标签页/窗口中打开且在调用函数之前该标签页中的URL未更改时,此方法有效。否则将无效。 - Lampe2020

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接