我试图解决这一问题已有一段时间,但是当我尝试引用打开窗口的窗口时,始终是不确定的。

值得注意的是,它正在用户脚本中使用,这是有问题的代码段:

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");
    }
}

09-27 19:22