2.Browserinstanz(mit window.open) bei Lostfocus auto-schliessen
Lude
- javascript
0 Norbert Klein0 Bjoern
Hallo,
brauche gelegentlich eine Zweitinstanz zur Datenerfassung. Diese gibt Daten an die Primärinstanz zurück. Funktioniert.
Wenn in der Primärinstanz aber ein Inhalt ist mit dem die Sekundärinstanz "nicht rechnet", gibt's einen JS-Fehler.
Benötige also ein window.close, wenn der Zweitinstanz der Focus verloren geht.
Was tun?
Gruss,
Lude
Hallo.
Benötige also ein window.close, wenn der Zweitinstanz der Focus verloren geht.
Warum?
Was tun?
Du brauchst den Event-Handler onblur (http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onblur), das sieht (in der Zweitinstanz) dann so aus:
<body onblur="window.close()">
Gruß
Norbert
Hallo nochmal.
<body onblur="window.close()">
onblur darf nicht im <body> stehen, das erzeugt ungültiges HTML, besser ist:
<script type="text/javascript">
<!--
window.onblur = window.close;
//-->
</script>
Gruß
Norbert
onblur darf nicht im <body> stehen, das erzeugt ungültiges HTML, besser ist:
hi,
tut mir leid, dass ich vorher das gleiche nochmals geschrieben hatte. das folgende html hat sich aber fehlerlos geschlossen:
<html><head></head>
<body onBlur="window.close()">
<p>verlass mich nicht.</p></body></html>
gruss
bjoern
onblur darf nicht im <body> stehen, das erzeugt ungültiges HTML, besser ist:
hi,
tut mir leid, dass ich vorher das gleiche nochmals geschrieben hatte. das folgende html hat sich aber fehlerlos geschlossen:
Obgleich es funktioniert, meckert der Validator, laut HTML 4.01 Spezifikationen ist onblur im body nicht erlaubt (http://www.w3.org/TR/html401/struct/global.html#edef-BODY).
Im Validator gibt's folgenden Fehler:
Error: there is no attribute "ONBLUR" for this element (in this HTML version)
Gruß
Norbert
Hi,
das Problem ist bei beiden Lösungen, dass das Fenster z.B. auch dann schliesst, wenn nur ein input-element vom Nutzer gefüllt wird.
Gruss,
Lude
Hallo.
das Problem ist bei beiden Lösungen, dass das Fenster z.B. auch dann schliesst, wenn nur ein input-element vom Nutzer gefüllt wird.
Oops, stimmt. Naja, wenn das zweite Fenster vom Ersten geöffnet wird, hat es, zumal auch Daten ausgetauscht werden, doch sicherlich einen Namen, d.h. anstatt Fenster #2 zu schließen, wenn es den Focus verliert, könntest du es schließen, wenn das Erste den Focus bekommt.
Also entweder im ersten Fenster:
<script type="text/javascript">
<!--
ZweitesFenster = window.open("","");
window.onfocus = ZweitesFenster.close;
//-->
</script>
Oder im Zweiten:
<script type="text/javascript">
<!--
opener.onfocus = window.close;
//-->
</script>
Das sollte funktionieren, wenn das zweite Fenster durch window.open geöffnet wurde.
Gruß
Norbert
Benötige also ein window.close, wenn der Zweitinstanz der Focus verloren geht.
ich würde einmal versuchen, im zweitfenster:
...<body onBlur="window.close()">...
könnte funktionieren, bin aber nicht sicher.
Bjoern