Mein Zurückbutton geht nur unter IE
Thomas Häber
- javascript
Morgen,
Ich habe ein Problem mit meinem Zurückbotton.
Zur Information ist dat kehn normaler Button sondern er sollte registrieren ob Einträge in der History existieren und wenn keine vorhanden sind self.close(); machen. Falls welche vorhanden sind soll er zurück gehen mit history.back();.
Der Microsoftbrowser hat wie gesagt keine Probleme da er meins wohl ignoriert.
Hier der Script:
function Zur() {
if (history.length == 0) history.back();
else self.close();
return;
}
Hier der Button:
function Zurueck() {
with (document) {
writeln("<p> </p><div align="center"><table style="width:100px;height:24px;background-color:#3366FF; border-color:#ffffff; border-style:solid; border-width:1px;" summary="Hiermit geht es zurück."><tr>");
writeln("<td style="line-height:20px;" align="center"><a href="javascript:Zur()" onMouseOver="window.status='.. Zurück ..'; return true" onMouseOut="window.status='';">.. Zurück ..</a></td>");
writeln("</tr></table></div>");
}
}
Tja als Beispielseite nehmen wir mal http://www.h-games.de/action/asteroids/index.htm
Um den Fehler zu zeigen klicken sie bitte auf Copyrights im linken Menu und danach in dem Copyrightfenster auf Zurück.
Operapoblem:
Opera lässt es nur zu 1x das Fenster zu schließen. Fall ein weiteres geöffnet wird geht es halt nicht mehr zu.
Mozillaproblem:
Mozilla schließt das Fenster gar nicht.
Lösungsvorschlag:
Ich habe es schon mal mit return probiert, habe jedoch nur noch mehr niederschmetternde Ergebnisse erzielt.
Die gleiche Funktion könnte auch mit document.referrer funktionieren. Diesen will ich jedoch nicht anwenden da viele Leute besonders die Operanutzer diesen Befehl ausgeschaltet haben (hauptsächlich aus Datenschutzgründen).
MfG
Thomas
Nochmal ich,
Ein kleiner Fehler hat sich eingeschlichen.
1. das return; in der Zur() Funktion stammt noch aus Bastelzeiten und gehört nicht zur für mich besten Variante.
2. Nach einem weiteren Test mit dem IE hat er auf einmal das gleiche Problem. :-(
MfG
Thomas
Tach.
Hier der Script:
function Zur() {
if (history.length == 0) history.back();
else self.close();
return;
}
Fehlen dem Script nich ein paar Klammern?
function Zur()
{
if (history.length == 0)
{history.back();}
else
{self.close;}
}
Vielleicht lag's ja daran...
Nochwas:
Da mein NS 6 bei self.close() _immer_ abgestützt ist, würde ich zu window.close() raten...
Außerdem ist mir aufgefallen, daß history.length nicht in jedem Browser den gleichen Wert hat
Teste doch mal mit alert(history.length) in verschiedenen Browsern...
Gruß,
olli
Gruß,
olli
Moin,
Gruß,
olli
Gruß,
olli
*g* das ist ja schon fast ein ganzer Song, gibts auch Noten dazu? ;-))
Viele Gruesse,
n.d.p.
Viele Gruesse,
n.d.p.
Hi.
*LOL* - Du hast mich überzeugt: ich gehe jetzt wirklich ins Bett... *LOL*
Vielleicht kommt mir dann im Schlaf auch die Idee zu 'ner passenenden Melodie... :-)
Den Gruß kann ich mir ja hier jetzt mal sparen... ;-)
Hallo Gemeinde,
Ich habe nach Workarounds gesucht und nur mangelhafte gefunden.
Der Script vopm Post ist ohne dieses return; immer noch gültig. Ich es jedoch anders versucht.
Ich habe diese Seite erstellt um zu testen was auf welchem Browser geht (unten geht es weiter):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Probe aufs Exempel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
</head>
<body>
So sieht das mit history.length aus:
<script type="text/javascript" language="javascript">
<!--
document.writeln(history.length);
//-->
</script>
<p><hr></p>
So sieht das mit referrer aus:
<script type="text/javascript" language="javascript">
<!--
document.writeln(document.referrer);
//-->
</script>
<p><hr></p>
So sieht das mit opener aus:
<script type="text/javascript" language="javascript">
<!--
var jop2 = window.opener;
document.writeln(jop2);
//-->
</script>
</body>
</html>
Zur Erschütterung ging der referrer-Befehl im Mozilla sowie IE gar nicht. Weswegen dieser schon mal ausscheidet.
Der History-Befehl geht auf allen außer dem Mozilla, weswegen es immer schwieriger für mich wird.
Der Opener-Befehl hatte mich sehr beeindruckt da er überall Ergebnisse lieferte, schnurstracks hatte ich eine Abfrage gstartet die feststellt ob er (null bzw. undefined) oder (object) ist. Das war sehr erfolgreich. Einziger Nachteil ist das meine Fenster, welche den Zurückbutton erhalten, per Javascript aufgerufen werden und dadurch standartweise mit opener = object ausgestattet werden.
Auch ein Versuch mit location anstatt window.open brachte ncihts da auch hier object draus wurde.
Daher nun meine Frage nach all den Bemühungen:
Wie geht das unter Mozilla???????????????????
MfG
Thomas