in einem HTML-Dokument wird mittels
<a href="fenster.html">Fensteröffnen</a>
ein neues Browserfenster geöffnet. Wenn das Fenster nicht mehr benötigt
wird, muss man es zzt. über das Schließen-Symbol in der Titelzeile
schließen.
Ich möchte nun einen entsprechenden Link einbauen, der das Fenster
schließt. Mit
<script language="JavaScript">
window.close();
</script>
funktioniert das zwar, aber ich bekomme im IE 6 oder höher immer die
Abfrage: "Ein Script versucht das Fenster zu schließen".
Wie kann ich mit dem IE diese Meldung umgehen?
Versucht habe ich auch schon (im www gefunden):
index.html:
<html>
<head>
</head>
<body>
<a href="JavaScript:window.location.href=kill.html">Fenster schließen</a>
</body>
</html>
kill.html:
<html>
<head>
</head>
<body>
<script language=JavaScript>
window.close();
</script>
</body>
</html>
Doch auch hier erhalte ich obige Abfrage, obwohl dies angeblich nicht
mehr sein soll.
Welche Möglichkeit gibt es, ein Fenster im IE OHNE Rückfrage einfach zu
schließen?
Danke und Gruß
Heiko
> in einem HTML-Dokument wird mittels
> <a href="fenster.html">Fensteröffnen</a>
> ein neues Browserfenster geöffnet.
Nein, mit an Sicherheit grenzender Wahrscheinlichkeit wird es das nicht.
> Wenn das Fenster nicht mehr benötigt wird, muss man es zzt. über das
> Schließen-Symbol in der Titelzeile schließen.
Ja. Oder über einen entsprechenden Menübefehl, über eine Tastenkombination,
oder …
> Ich möchte nun einen entsprechenden Link einbauen, der das Fenster
> schließt.
Nein, möchtest Du nicht.
> Mit
>
> <script language="JavaScript">
> window.close();
> </script>
>
> funktioniert das zwar,
Und das, obwohl es nicht einmal valides HTML ist.
> aber ich bekomme im IE 6 oder höher immer die
> Abfrage: "Ein Script versucht das Fenster zu schließen".
> Wie kann ich mit dem IE diese Meldung umgehen?
Gar nicht.
> Versucht habe ich auch schon (im www gefunden):
>
> index.html:
> <html>
> <head>
> </head>
Das ist auch jenseits jeder Validität.
> <body>
> <a href="JavaScript:window.location.href=kill.html">Fenster schließen</a>
Das ist grober Unfug, da es äquivalent zu
<a href="kill.html">Fenster schließen</a>
ist. Aber nur, wo Script-Unterstützung vorhanden und aktiviert ist und
darüberhinaus das proprietäre `javascript:'-Schema unterstützt wird. Bei
allen anderen Benutzern passiert entweder gar nichts oder es gibt eine
Fehlermeldung.
<http://jibbering.com/faq/#javascriptURI>
> kill.html:
> <html>
> <head>
> </head>
> <body>
> <script language=JavaScript>
> window.close();
> </script>
> </body>
> </html>
>
> Doch auch hier erhalte ich obige Abfrage, obwohl dies angeblich nicht
> mehr sein soll.
Glaub nicht alles, was Du liest. Mehr als 90% der Scripts im Web sind Müll.
Dieses macht da keine Ausnahme.
> Welche Möglichkeit gibt es, ein Fenster im IE OHNE Rückfrage einfach zu
> schließen?
<http://praast.de/ffq/browser/#sicherheit>
"FFQ" steht für "Frequently Forbidden Questions".
PointedEars
--
var bugRiddenCrashPronePieceOfJunk = (
navigator.userAgent.indexOf('MSIE 5') != -1
&& navigator.userAgent.indexOf('Mac') != -1
) // Plone, register_function.js:16
> in einem HTML-Dokument wird mittels
> <a href="fenster.html">Fensteröffnen</a>
> ein neues Browserfenster geöffnet.
Seit wann öffnet ein einfacher Link ein neues Browserfenster? Fehlt da
nicht ein target="fenstername"-Attribut?
> Welche Möglichkeit gibt es, ein Fenster im IE OHNE Rückfrage einfach zu
> schließen?
So das Fenster durch ein Script geöffnet wurde, erlaubt IE meines
Wissens auch einem Script, es ohne Nachfrage zu schliessen.
In das öffnende Dokument könnte man also
<a href="fenster.html" target="w1"
onclick="return (window.open(this.href, this.target) == null);">Test</a>
einbauen, dann sollte
<input type="button" value="close" onclick="window.close();">
im geöffneten Dokument das Schliessen ohne Nachfrage erlauben. Getestet
habe ich das hier mit IE 8.
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
> Heiko Warnken wrote:
>> <a href="JavaScript:window.location.href=kill.html">Fenster schließen</a>
>
> Das ist grober Unfug, da es äquivalent zu
>
> <a href="kill.html">Fenster schließen</a>
>
> ist.
Korrektur: Es ist nur grober Unfug; für Äquivalenz müsste `kill.html'
freilich in Apostrophen stehen (so wie jetzt ist es nur ein Zugriff auf die
html-Eigenschaft eines mit `kill' referenzierten Objekts [welches es
wahrscheinlich nicht gibt]).
--
PointedEars
Stimmt. SO jedenfalls nicht. Aber mit einem target="_blank" schon. Zu
dumm, dass ich ausgerechnet so eine Kleinigkeit hier vergessen habe.
Heiko
Du hastrecht. ein target="_blank" fehlt da oben.
>> Welche Möglichkeit gibt es, ein Fenster im IE OHNE Rückfrage einfach zu
>> schließen?
>
> So das Fenster durch ein Script geöffnet wurde, erlaubt IE meines
> Wissens auch einem Script, es ohne Nachfrage zu schliessen.
Ich werde das nachher mal ausprobieren.
Danke Dir,
Heiko
Auch das öffnet nicht notwendigerweise ein neues Browserfenster. Derzeit
ist die Wahrscheinlichkeit, dass es ein neues Tab öffnet, sogar deutlich
höher. Zwischen dieser Wahrscheinlichkeit und der, dass es ein neues
Fenster öffnet, liegt derzeit die Wahrscheinlichkeit, dass es zu einer ganz
normalen Navigation führt (weder neues Fenster noch Tab), da Benutzer mit
Tabbed Browsing (derzeit in der Mehrheit) Popup-Blocker installiert haben
können, die ein neues $CONTAINER verhindern (z.B. wenn die Website bei der
Navigation nicht wechselt).
In jedem Fall öffnet es kein $CONAINER, der ohne Nachfrage mit Scripting
schliessbar wäre (privilegierte Umgebungen ausgenommen), da er nicht mit
Scripting geöffnet wurde.
PointedEars
--
Also bitte: in einem Satz nicht zusammen Microsoft und Standard
schreiben. Microsoft ist immer ein Fehler, also paßt nur Standart
dazu. (David Kastrup in dagø <x5wuhvb...@lola.goethe.zz>)
> in einem HTML-Dokument wird mittels
> <a href="fenster.html">Fensteröffnen</a>
> ein neues Browserfenster geöffnet. Wenn das Fenster nicht mehr benötigt
> wird, muss man es zzt. über das Schließen-Symbol in der Titelzeile
> schließen.
> Ich möchte nun einen entsprechenden Link einbauen, der das Fenster
> schließt. Mit
>
> <script language="JavaScript">
> window.close();
> </script>
>
> funktioniert das zwar, aber ich bekomme im IE 6 oder höher immer die
> Abfrage: "Ein Script versucht das Fenster zu schließen".
> Wie kann ich mit dem IE diese Meldung umgehen?
Das könnte gehen:
<a href="#" onclick="window.close();">Fenster schliessen</a>
Noch besser wäre:
<a href="schliessen.html" onclick="window.close();">Fenster schliessen</a>
Und in schliessen.html dann ein Text, warum das Schliessen nicht
geklappt hat - für den Fall dass jemand kein JavaScript hat bzw.
selbiges im Browser abgeschaltet wurde.
Die Idee hinter der Warnung des IE6 ist wohl, dass der Benutzer sich
beim Anklicken eines Links auch bewusst entschieden hat, etwas
auszulösen, während er nicht damit rechnet, dass alleine das Anzeigen
eines Dokuments zum Schließen des Fensters führt.
Aber dennoch meine Empfehlung:
"Fenster schliessen" kann man jeder Benutzer wunderbar mit den üblichen
Mitteln des Betriebssystems - er braucht dazu keinen Knopf oder Link im
Browser und die meisten Benutzer wissen auch, wie das geht.
> Am 2011-02-11 16:08, schrieb Heiko Warnken:
>> in einem HTML-Dokument wird mittels
>> <a href="fenster.html">Fensteröffnen</a>
>> ein neues Browserfenster geöffnet. [Fenster schliessen] Mit
>>
>> <script language="JavaScript">
>> window.close();
>> </script>
>>
>> funktioniert das zwar, aber ich bekomme im IE 6 oder höher immer die
>> Abfrage: "Ein Script versucht das Fenster zu schließen".
>> Wie kann ich mit dem IE diese Meldung umgehen?
>
> Das könnte gehen:
>
> <a href="#" onclick="window.close();">Fenster schliessen</a>
>
> Noch besser wäre:
>
> <a href="schliessen.html" onclick="window.close();">Fenster schliessen</a>
Das ändert nichts an dem Problem.
Du hast ausserdem vergessen, den click-Event zu canceln. In dieser
Kombination führt das zu einer Race Condition, und somit möglicherweise zu
seltsamen, unerwünschten Effekten.
Auf die FAQ, in der steht, wie es richtig geht, habe ich bereits verwiesen.
> Und in schliessen.html dann ein Text, warum das Schliessen nicht
> geklappt hat - für den Fall dass jemand kein JavaScript hat bzw.
> selbiges im Browser abgeschaltet wurde.
Wesentlich sinnvoller ist es, diesen Script-only-"Link" mit Scripting zu
generieren, z.B. mit document.write().
> Die Idee hinter der Warnung des IE6 ist wohl, dass der Benutzer sich
> beim Anklicken eines Links auch bewusst entschieden hat, etwas
> auszulösen, während er nicht damit rechnet, dass alleine das Anzeigen
> eines Dokuments zum Schließen des Fensters führt.
Die Idee hinter der Warnung, ist, zu verhindern, dass der Benutzer ungewollt
seine History verliert. Auch das steht in der FAQ bzw. der FFQ.
> Aber dennoch meine Empfehlung:
>
> "Fenster schliessen" kann man jeder Benutzer wunderbar mit den üblichen
> Mitteln des Betriebssystems - er braucht dazu keinen Knopf oder Link im
> Browser und die meisten Benutzer wissen auch, wie das geht.
Es kann sinnvoll sein, so einen "Link" einzubauen (semantisch korrekt jedoch
ein Button, d.h. <input type="button" …> oder <button …>…</button>), z.B.
wenn vor dem Schliessen weitere Aktionen ausgeführt werden müssen. Denn der
unload-Event tritt auch bei Navigation ein, und adäquate Event-Handler
(onclose) sind nicht cross-browser.
PointedEars
--
Mozilla ist ein Webbrowser. Das ist ein Programm, dass es ermoeglicht,
Webseiten anzusehen. Das ist nicht sowas wie ein Programm, das es
Webdesignern erlaubt, den Nutzer zu belaestigen, indem man seine
Arbeitsumgebung unsinnig manipuliert. -- Boris 'pi' Piwinger in dcljs