document.write("<input type=\"button\" onClick=\"foo()\">");
Anne
- javascript
Hallo,
wieder mal ein document.write()-Problemchen:
ich möchte in einem dynamisch erzeugten Fenster durch Klick auf einen Button eine Funktion in dem Script aufrufen. Auf dieses Problem reduziert ergibt das folgendes Script:
<script language="JavaScript">
<!--
var win = null;
function edit(){
win = window.open();
win.document.write("<input type="button" name="speichern" value="speichern" onClick="foo()">");
}
function foo(){
alert("TEST");
}
edit();
//-->
</SCRIPT>
Nur leider macht er's nicht! Hat jemand ne Idee?
Gruß
Anne
win.document.write("<input type="button" name="speichern" value="speichern" onClick="foo()">");
Wohin schreibst Du? Wo ist foo()? Aha.
Nur leider macht er's nicht! Hat jemand ne Idee?
Bei mit funzt das so:
<script language="JavaScript">
var win = null;
function edit(){
win = window.open();
win.document.write("<input type="button" name="speichern" value="speichern" onClick="foo()">");
}
</script>
</head>
<body onload="javascript:edit();">
</body>
</html>
MfG Tobias
Bei mit funzt das so:
<body onload="javascript:edit();">
Das tut es nicht. Glaube mir. Und RTFM.
Das tut es nicht. Glaube mir. Und RTFM.
Hast recht. Ich hab' das eigentliche Problem mißverstanden. Ich dachte, es dreht sich lediglich um das Erzeugen des Buttons. Kommando zurück ... :-(
MfG
Hallo Tobias,
da ändert sich gar nix. foo() wird trotzdem nicht ausgeführt. Bei mir jedenfalls. Du hast ja eigentlich nur den Aufruf von edit() aus dem Script ausgelagert. Das Problem taucht aber genaugenommen erst nach dem Aufruf bzw. während der Ausführung von edit() auf.
(???)
Anne
Hi Anne,
die Funktion "foo" musst du auch ins neue Fenster schreiben:
<script type="text/javascript" language="JavaScript">
<!--
var win = null;
function edit() {
win = window.open();
win.document.write("<input type="button" name="speichern" value="speichern"
onClick="foo();">");
win.document.write("<script type="text/javascript" language="JavaScript">");
win.document.write("function foo(){ alert("TEST"); } ");
win.document.write("</SCRIPT>");
}
edit();
//-->
</SCRIPT>
Grüße, Anja
die Funktion "foo" musst du auch ins neue Fenster schreiben:
Die Methode sollte dem Fenster übergeben werden.
Die Methode sollte dem Fenster übergeben werden.
Wie?
Wie?
RTFM, bitte. Das gehört zu den Basics.
» RTFM, bitte. Das gehört zu den Basics.
Danke!
Hi Anne
versuchs doch mal so:
win.document.write("<input type="button" name="speichern" value="speichern" onClick="opener.foo()">");
muß man aber aufpassen, daß der opener noch offen ist:
win.document.write("<input type="button" name="speichern" value="speichern" onClick="if(!opener.closed){opener.foo()}">");
hast du nochmal in deinen alten thread geschaut ?
da hatt ich nochmal was zum vorigen prob gepostet.
gruß
ptr
Hallo Peter
win.document.write("<input type="button" name="speichern" value="speichern" onClick="if(!opener.closed){opener.foo()}">");
funktioniert, aber dabei schiebt sich das erste Fenster (vermutlich der "opener"?) vor das win. Das gefällt mir nicht ;-)
hast du nochmal in deinen alten thread geschaut ?
da hatt ich nochmal was zum vorigen prob gepostet.
Das hab ich (und wollte eigentlich auch noch ne kurze Antwort schreiben ... sorry). Vielleicht hast dus ja auch bis zu dir klatschen gehört, als ich mir gegen die Stirn gehaun hab, wegen der eigentlich so simplen und naheliegenden Idee, den Array-Index zu übergeben!!! Wie du schon gesagt hast, manchmal spielen einem die eigenen Gehirnwindungen einen ganz schönen Streich ;-))
Viele Grüße,
Anne
funktioniert, aber dabei schiebt sich das erste Fenster (vermutlich der "opener"?) vor das win. Das gefällt mir nicht ;-)
...ist doch nicht so schlimm, da ich in foo() win sowieso schließe...
Also dankeschön
Anne
P.S.: so gehts doch: win.alert("TEST");
hi
zur opener.closed -abfrage:
da baut übrigens der ie 5.0 konsequent scheiße und bringt immer true zurück, egal ob der opener geschlossen wurde oder nicht.
gruß
ptr
hi
zur opener.closed -abfrage:
da baut übrigens der ie 5.0 konsequent scheiße und bringt immer true zurück, egal ob der opener geschlossen wurde oder nicht.
Falsch!
der 5.0 bringt für opener.closed immer false zurück, !opener.closed is immer true.
gruß
ptr