onBlur mit IE (wieder eine Dumme Frage ;-)
David D.
- javascript
0 Stefan Muenz0 David D.
So eine ähnliche Frage gab es heute schon mal und sie schlug hohe Wellen:
Ich will durch drücken eines Links ein neues Fenster (quasi POPUP) erzeugen, dass aber verschwindet, nachdem man irgentetwas außerhalbt des Fensters clickt. Klarer Fall dachte ich mir, wozu gibt es den den onBlur-Eventhandler. Ein kurzer Blick in SELF-HTML und schon habe ich ein Beispiel gefunden, dass meinem Problem ähnelt </selfhtml/tecb.htm#a21>. Ein wenig Cut'n'Paste Programmierung, Events ändern und fertig.
<body>
<script language="JavaScript">
function NeuesFenster()
{
POPUP = window.open("","PopUpFenster","width=10,height=10");
POPUP.document.open();
POPUP.document.writeln ("Hello World!");
POPUP.document.close();
POPUP.focus;
POPUP.onblur = POPUP.close;
}
</script>
<a href="javascript:NeuesFenster()">click me!</a> </body>
Fertig?? Eben nicht. Zumidest nicht wenn man das mit IE 5 zum laufen bringen will. Mit Netscape 4.5 veschwindet das Fenster wenn es den focus verliert, mit IE bleibt es ruhig liegen.
Möglicherweise hat es damit zu tun, dass auch das Beispiel in SELFHTML (s.o.) auch nicht mit IE läuft. Klar ist: window.captureEvents() ist JS1.2 und somit nicht unbedingt im IE zu verwenden. Aber in meinem Beispiel verwende ich captureEvents gar nicht. onblur sollte auch IE seit langem kennen.
Hat jemand eine Idee wie es auch mit IE geht?
Nebenbei: Ich kenne Javascript nicht supergut, also nicht wie heute morgen meckern wenn es alle schon wissen ;-). Ich bin schon froh dass ich es alleine wenigstens mit Netscape geschafft habe.
Gruß
David
Hallo David
Fertig?? Eben nicht. Zumidest nicht wenn man das mit IE 5 zum laufen bringen will. Mit Netscape 4.5 veschwindet das Fenster wenn es den focus verliert, mit IE bleibt es ruhig liegen.
Das liegt daran, dass der IE ein voellig anderes Event-Modell hat als der Netscape - leider. Probier es mal durch folgende zusaetzliche Notation ausserhalb des <script></script>-Bereichs:
<script for=POPUP event="onblur()" language="JScript">
{ POPUP.close(); return true; }
</script>
Ich weiss allerdings nicht, ob er an der Stelle den selbstvergebenen Windownamen akzeptiert.
viele Gruesse
Stefan Muenz
Hallo Stefan
Ich weiss allerdings nicht, ob er an der Stelle den selbstvergebenen Windownamen akzeptiert.
Wahrscheinlcih nicht. Es geht zumindest nicht. Gibt es nicht eine ganz andere Methode Fenster auf diese Weise zum verschwinden zu bringen?? Vielleicht ohne Events?? Sowas sollte doch prinzipiell machbar sein (ich meine Netscape zeigt's). Ich versuche mich gerade durch die JScript Doku von MS zu quälen, aber SELFHTML ist wesentlich besser strukturiert, verständlich, übersichtlich ... <lob-schleim>
Gruß
David