Funktion zum Öffnen eines Popups -> Mysterium?

Mik3e

Erfahrenes Mitglied
Hi & schönen Abend...

Ich habe mir eine kleine Funktion zum Öffnen eines Popups geschrieben:

HTML:
/* Anzeigen eines Popups mit einer Frage (Benutzerentscheidung)
-------------------------------------------------------------*/
function showQuestionPopup(urlParams) {
	var screenMiddleWidth=(screen.width*0.5-250);
	var screenMiddleHeight=(screen.height*0.5-200);
	
	showQuestionPopup=window.open('questionPopup.php?'+urlParams,'showQuestionPopup','width=500,height=400,left='+screenMiddleWidth+',top='+screenMiddleHeight);
	showQuestionPopup.focus();

	return true;
}
Diese Funktion wird nun über ein <Input> Element aufgerufen:
HTML:
<input type="button" name="Submit3" onclick="showQuestionPopup('includeFile=customerGroupsEditConfirmation.php');" value="Popup oeffnen"/>

Das Problem:
Das Öffnen des Popups klappt wunderbar... Allerdings nur ein einziges mal!? Angenommen der User öffnen das Popup, schließt es wieder und klickt erneut auf den Button zum Öffnen, bekomme ich folgende (in meinen Augen absolut unlogische) Exception:
Code:
Fehler: showQuestionPopup is not a function
Habt Ihr ne Ahnung, was der Grund sein kann? Die Funktion ist ja keine Eintagsfliege die plötzlich verschwindet... :)

Danke & Ciao,
Mike
 
Hi,

die Funktion zum Öffnen des PopUps (showQuestionPopup) und die Variable für das Fensterhandle
(showQuestionPopup) haben den gleichen Namen. Damit wird nach dem ersten Aufruf des PopUps mit
showQuestionPopup die Variable angesprochen und nicht mehr die Funktion.

Wenn du zum Beispiel den Funktionsnamen änderst, sollte das Problem eigentlich behoben sein.

Ciao
Quaese
 
Hi,

Danke, das war das Problem.. Ich könnte mich eigentlich selbst schlagen, weil das selbe Problem hatte ich schon vor ein paar Monaten. Aber man kann sich ja nicht alles merken. Noch dazu ist JS für mich eher ein erzwungenes Mittel zum Zweck :)

Dennoch finde ich es spannend, dass zwischen Funktionsaufruf und Referenz auf einen Fenster-Handler nicht unterschieden werden kann..

Danke vielmals,
Ciao,
Mike
 
Zurück