获取弹出窗口换页后

问题描述:

有一个flash播放器弹出到单独的弹出式浏览器窗口中。在源页面上,Flash播放器只显示一条消息,表明它当前弹出。获取弹出窗口换页后

现在,如果用户导航离开源页面(到同一域的另一页),我如何获得对弹出窗口的引用或只是检测它是否打开(在新页面上使用javascript)?

+0

你可以在新的页面新页面后打开弹出窗口底部写脚本加载 – GustyWind 2011-05-16 04:56:29

+0

那会刷新弹出窗口,如果它已经加载,弹出窗口包含一个音频播放器,所以重新加载会导致音乐播放中断。 Facebook以其突出的聊天功能以某种方式做到这一点,在离开他们的网站之后,聊天仍然可用,并且在返回到他们的网站时不会重新加载,并且它显示聊天在他们页面的底部弹出。所以希望有这样的事情 – 2011-05-16 05:07:52

想通了。必须在弹出的窗口中有一个JavaScript定时器,它试图在父窗口中执行一个函数,如果存在,它将简单地隐藏播放器。

例如

弹出式视窗脚本

<script> 
    if(window.opener!=null) 
     setTimeout("popCheck();",2000); 

    function popCheck() 
    { 
     //Use try catch to prevent premission denied msgs in 
     //case parent window is on different domain 
     try 
     { 
      window.opener.setPoppedOut(); 
     } 
     catch(e) 
     { 
     } 
     //Check Every 2 seconds 
     setTimeout("popCheck();",2000); 
    } 

    window.onbeforeunload = function() 
    { 
     //Used to facilitate popin on window close 
     if(window.opener!=null) 
     { 
      try 
      { 
       window.opener.setPoppedIn(); 
      } 
      catch(e) 
      { 
      } 
     } 
    } 

</script> 

父窗口脚本

<script> 
    //Save the previous contents so that we can restore them later. 
    window.popoutContent = document.getElementById("popoutContent").innerHTML; 

    function setPoppedOut() 
    { 
     document.getElementById("popoutContent").innerHTML = "Player is Popped Out"; 
    } 
    function setPoppedIn() 
    { 
     document.getElementById("popoutContent").innerHTML = window.popoutContent; 
    } 
</script>