2

我一直在尝试解决这个问题,但是当我尝试引用一个打开的窗口时,句柄总是未定义的。

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

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 中使用它。

4

1 回答 1

-1

为什么要在打开新窗口之前关闭现有窗口?你不需要这样做。

如果您只是在打开窗口时使用相同的名称,它将替换现有的窗口(如果有)。

这意味着您无需查找是否有打开的窗口。

function showDonateWindow()
{
    if (window.confirm("Question here"))
    {
        window.open("http://somesite.com/","donateWindowName");
    }
}
于 2012-04-14T12:50:42.690 回答