获取弹出窗口换页后
问题描述:
有一个flash播放器弹出到单独的弹出式浏览器窗口中。在源页面上,Flash播放器只显示一条消息,表明它当前弹出。获取弹出窗口换页后
现在,如果用户导航离开源页面(到同一域的另一页),我如何获得对弹出窗口的引用或只是检测它是否打开(在新页面上使用javascript)?
答
想通了。必须在弹出的窗口中有一个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>
你可以在新的页面新页面后打开弹出窗口底部写脚本加载 – GustyWind 2011-05-16 04:56:29
那会刷新弹出窗口,如果它已经加载,弹出窗口包含一个音频播放器,所以重新加载会导致音乐播放中断。 Facebook以其突出的聊天功能以某种方式做到这一点,在离开他们的网站之后,聊天仍然可用,并且在返回到他们的网站时不会重新加载,并且它显示聊天在他们页面的底部弹出。所以希望有这样的事情 – 2011-05-16 05:07:52