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 に答える