如何关闭窗口,即使用链接和onbeforeunload?

时间:2010-03-25 12:41:08

标签: javascript

我使用 main.html

中的以下代码打开一个弹出窗口
function openwindow(url)
{
    window.open(url, "mywindow","location=1,status=1,scrollbars=1,resizable=no,width=650,height=650");
}

<a href="javascript: openwindow('/chats/chat?url=http%3A%2F%2Flocalhost%3A3001')">Open</a>

在我的 child.html 中,我使用了

function closewindow()
{
    self.close();
}

function closeIt()
{
    return "Your chat will be terminated. Are you sure?"
}

<a href="javascript:void(0)" onclick="closewindow();">Close Window< /a > &nbsp; &nbsp; 

当我点击关闭窗口时,它会给我发送警报消息,我在事件onbeforeunload上给出但是当我点击Ok时它不会关闭窗口。此外这只发生在I.E. &安培;在mozilla,网景,野生动物园工作正常。我在IE6&amp; IE8

任何帮助都是赞赏的。

此致

Salil Gaikwad

1 个答案:

答案 0 :(得分:2)

这是一个很长一段时间以来的问题。你可以试试这个

< a href="javascript:window.opener='x';window.close();">Close< /a>

但它将关闭窗口而不提示关闭窗口。

另一种解决方案是:

function closeWindow() {

     //var browserName = navigator.appName;

     //var browserVer = parseInt(navigator.appVersion);

     var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;  

     if (ie7)

           {    

           //This method is required to close a window without any prompt for IE7

           window.open('','_parent','');

           window.close();

           }

     else

           {

           //This method is required to close a window without any prompt for IE6

           this.focus();

           self.opener = this;

           self.close();

           }

}

但据我所知,IE7中的window.prompt方法被阻止了。 您可以查看此问题的THIS thread