导航网站时保留弹出窗口

时间:2011-08-09 18:52:10

标签: javascript

以下代码在加载页面时生成javascript弹出窗口,然后在父窗口关闭时关闭弹出窗口。

<script language="JavaScript">
  var player;
  function load() {
   player = window.open('http://www.google.com','player','height=320,width=320,scrollbars,resizable'); 
  }
  function unload() {
      player.close();
  }
window.onload = load;
window.onunload = unload;
</script>

这样可以正常工作,但在网站上切换页面时会关闭弹出窗口。有没有什么方法可以改变它以保持弹出窗口,直到实际的URL /站点窗口关闭?

3 个答案:

答案 0 :(得分:1)

我认为你必须从孩子那里检查父窗口的状态,而不是相反。

此代码尚未经过测试,但我正在尝试这个概念:

window.opener.onunload = 
     setTimeout(
          function(){ 
              if (!window.opener) self.close(); 
          }, 1000);

答案 1 :(得分:0)

简短回答是否定的,挂钩关闭窗口的事件的唯一方法是onunload,当文档被卸载时(例如当你导航到另一个页面时)会触发。

也许您可以在弹出窗口(使用计时器或onfocus)上检查window.opener,以检查发起弹出窗口的窗口是否仍然存在,然后关闭弹出窗口(如果不存在)。

答案 2 :(得分:0)

这可能会对您有所帮助:

<script language="Javascript">
    var player;
    function load() {
        player = window.open('http://www.google.com','player','height=320,width=320,scrollbars,resizable');
    }
    function unload() {
        if (!(window.location.equals('http://yourSiteName.com'))) {
            player.close();
        }
    }
window.onload = load();
window.onunload = unload();
</script>