Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览网站时保留弹出窗口_Javascript - Fatal编程技术网

Javascript 浏览网站时保留弹出窗口

Javascript 浏览网站时保留弹出窗口,javascript,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() {

下面的代码在加载页面时生成一个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>

var播放器;
函数加载(){
播放器=窗口。打开('http://www.google.com'、'player'、'height=320,width=320,滚动条,可调整大小';
}
函数卸载(){
player.close();
}
window.onload=加载;
window.onunload=卸载;

这是工作正常,但它关闭弹出窗口时,切换网页上的网站。是否有任何方法可以更改此选项以保持弹出窗口,直到实际的URL/站点窗口关闭?

简短的回答是否,连接到关闭窗口的事件的唯一方法是
onunload
,它在卸载文档时触发(如导航到另一页时)


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

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

这段代码还没有经过测试,但我尝试一下这个概念:

window.opener.onunload = 
     setTimeout(
          function(){ 
              if (!window.opener) self.close(); 
          }, 1000);
这可能会帮助您:

<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>

var播放器;
函数加载(){
播放器=窗口。打开('http://www.google.com'、'player'、'height=320,width=320,滚动条,可调整大小';
}
函数卸载(){
if(!(window.location.equals()http://yourSiteName.com'))) {
player.close();
}
}
window.onload=load();
window.onunload=unload();

使用这种打开弹出窗口的方法,您可能会遇到弹出窗口拦截器问题。我不确定您的评论与我的问题有何关联……事实并非如此;这只是一个评论:-)我开始输入答案,但时间太长了,我被叫走了;很抱歉James Johnson的答案基本上就是我所建议的-从客户端轮询父(window.opener)。为了澄清,您可以将此代码放在子(popup)窗口中。嘿,我已经测试了这段代码,但我不确定是否正确实现了它,因为每当我导航到创建父窗口的同一网站中的新页面时,该窗口就会关闭。我使用了以下代码:window.opener.onunload=setTimeout(函数(){if(!window.opener)self.close();},1000);为了澄清,我添加了上面的代码。如果我关闭了网站,它不会关闭弹出窗口。但是如果我在网站关闭后打开弹出窗口并重新加载它,它会关闭弹出窗口。我如何让它不断检查家长是否关闭?我是否必须更改原始代码中的卸载函数?