【发布时间】:2011-12-30 01:31:10
【问题描述】:
我想为网站打开一个弹出窗口并保留它以供音乐播放器在用户浏览页面时播放无缝音乐。
我想要实现的是,当用户第一次单击“音乐”按钮时,会打开一个新的弹出窗口,使用 window.open(完成)。第二部分是当用户导航到其他页面并再次单击“音乐”按钮时,已经打开的窗口会获得焦点,但不会再次加载。
然而发生的情况是,一旦用户离开原始页面,浏览器就会忘记窗口已打开并且 focus() 停止工作。只要用户停留在同一页面上,focus() 似乎就可以工作。
我发现了一个类似的问题,并尝试根据该问题实现我的代码:
JavaScript window.open only if the window does not already exist
这是我目前写的代码:
$('a.music').click(function(){
if(typeof(winRef) == 'undefined' || winRef.closed){
winRef = window.open(this.href,'Music','left=20,top=20,width=500,height=500,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,titlebar=0');
} else {
winRef.focus();
}
return false;
});
如果您想看看,这里是现场网站。 http://ilhaamproject.com/
我应该如何引用打开的窗口以便它可以在不同的页面加载中工作?
【问题讨论】:
-
仅供参考:某些浏览器(例如 Firefox)会阻止来自 JavaScript 的重新聚焦窗口调用,因为广告客户弹出窗口会出现偏差。有一个配置设置可以改变这一点,但默认是 JS 不能升/降窗口。
-
我不明白。对我来说,Firefox 完美运行,我使用的是默认配置。火狐 8.0 / Windows。
标签: javascript popup window