2012-04-13 7 views
2

Ich habe versucht, diese eine für eine Weile herauszufinden, aber wenn ich versuche, ein Fenster zu referenzieren, das ich öffnete, ist der Griff immer undefiniert.Google Chrome Userscripts reference window.open

Es ist erwähnenswert, dass diese in einem userscript genutzt wird und hier ist die Schnipsel in Frage:

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

Jede Hilfe auf diesem würde sehr geschätzt werden. Es scheint egal was ich mache window.open gibt den Wert "undefined" zurück.

Mein Ziel ist es, ein Popup angezeigt zu bekommen, aber wenn eines bereits geöffnet ist, sollte es nur das alte ersetzen. Dies funktioniert wie erwartet in FF, aber für das Leben von mir kann ich es in Chrome nicht schaffen.

Antwort

-1

Warum versuchen Sie, ein vorhandenes Fenster zu schließen, bevor Sie ein neues öffnen? Du musst das nicht tun.

Wenn Sie nur denselben Namen für das Fenster verwenden, wenn Sie es öffnen, ersetzt es das vorhandene Fenster, falls vorhanden.

Dies bedeutet, dass Sie nicht suchen müssen, wenn ein geöffnetes Fenster geöffnet ist.

function showDonateWindow() 
{ 
    if (window.confirm("Question here")) 
    { 
     window.open("http://somesite.com/","donateWindowName"); 
    } 
}