我试图解决这一问题已有一段时间,但是当我尝试引用打开窗口的窗口时,始终是不确定的。
值得注意的是,它正在用户脚本中使用,这是有问题的代码段:
var donateWindow;
// ######################################################################
// # Show the donation popup and open a window to paypal site
// ######################################################################
function showDonateWindow()
{
if (window.confirm("Question here"))
{
if (! (typeof(donateWindow) == 'undefined' || donateWindow.closed)) window.donateWindow.close();
window.donateWindow = window.open("http://somesite.com/","tabName");
}
}
任何帮助,将不胜感激。似乎无论我做什么window.open返回值“未定义”。
我的目标是显示一个弹出窗口,但是如果已经打开一个弹出窗口,则应该替换旧的弹出窗口。这在FF中可以正常工作,但是对于我来说,我无法在Chrome中使用它。
最佳答案
您为什么要在打开新窗口之前关闭现有窗口?您不需要这样做。
如果在打开窗口时仅对窗口使用相同的名称,则它将替换现有的窗口。
这意味着您无需查找是否有打开的窗口。
function showDonateWindow()
{
if (window.confirm("Question here"))
{
window.open("http://somesite.com/","donateWindowName");
}
}