我的网站上有一个链接,可以打开一个指向播放很长音频文件的页面的新窗口。我当前的脚本可以很好地打开页面,并且如果多次单击链接不会刷新。但是,当我移动到我网站上的一个单独页面并再次单击此链接时,它会重新加载。我知道当父元素更改时,我将丢失我的变量,因此我需要打开窗口,覆盖现有内容。我正在努力寻找解决方案。我不想使用 cookie 来实现这一点,但如果需要,我会这样做。
我的脚本如下:
function OpenWindow(){
if(typeof(winRef) == 'undefined' || winRef.closed){
//create new
winRef = window.open('http://samplesite/page','winPop','sampleListOfOptions');
} else {
//give it focus (in case it got burried)
winRef.focus();
}
}
最佳答案
您应该首先在没有 URL 的情况下调用 winRef = window.open("", "winPopup")
- 这将返回一个窗口(如果存在),而无需重新加载。并且仅当 winRef
是 null
或空窗口时,才创建新窗口。
这是我的测试代码:
var winRef;
function OpenWindow()
{
if(typeof(winRef) == 'undefined' || winRef.closed)
{
//create new
var url = 'http://someurl';
winRef = window.open('', 'winPop', 'sampleListOfOptions');
if(winRef == null || winRef.document.location.href != url)
{
winRef = window.open(url, 'winPop');
}
}
else
{
//give it focus (in case it got burried)
winRef.focus();
}
}
有用。