1

此代码将在弹出窗口中打开 go.com:

<a href="javascript:void(0)" onClick="javascript:window.open('http://go.com','','status=yes,scrollbars=yes,toolbar=no,menubar=no,location=no ,width=300px,height=300px')">open</a>

我想alert('closed!')在主页中使用,当弹出窗口关闭并且我无法编辑弹出页面以供使用onunload="alert('closed!')"时,因为弹出页面是外部页面,我无法更改代码

var mywindow = window.open('http://go.com') ...

谢谢。

4

3 回答 3

1

与其直接在窗口中加载该外部页面,不如打开一个“本地”窗口,其中包含一个包含外部页面内容的 iframe?这样,您仍然可以对实际窗口进行足够的控制,以便能够判断它何时关闭。

一些缺点:地址栏不会显示他们正在浏览的 URL,如果 go.com 有某种帧破坏代码,它也可能会中断。

一些示例代码:

function openIFrameInWindow(url) {
    var myWindow = window.open("");

    var iframe = document.createElement("iframe");
    iframe.src = url;

    myWindow.document.body.appendChild(iframe); 

    myWindow.document.body.onbeforeunload = function () { alert("WINDOW CLOSED") }; 
}

<a href="javascript:void(0)" onClick="javascript:openIFrameInWindow('http://go.com')">open</a>
于 2010-10-02T16:50:39.777 回答
0

每隔 1 秒检查一次窗口的状态以查看它是否已关闭如何?示例代码,未经测试:

var mywindow= window.open();
checkmywindow();

function checkmywindow()
{
   if(mywindow.closed)
   {
      //code when popup is closed
   }
   else
   {
      setTimeout("checkmywindow();", 1000);
   }
}
于 2010-10-02T16:33:12.520 回答
0

当弹出窗口关闭时,您可以使用 window.opener 属性通知开启者窗口。

所以:

//pseudocode in pop-up window
onClose() {
 window.opener.popUpClosed = true;
}

现在,在您打开弹出窗口的页面中,您可以检查 popUpClosed 变量的值。

更多关于 opener 属性的信息: http ://www.webreference.com/js/tutorial1/opener.html

于 2010-10-02T17:18:50.983 回答