location.replace()
Andreas Flückiger
- javascript
0 Joachim0 Andreas Flückiger0 Joachim
0 Calocybe
Hallo!!!
Welche Versionen von IE unterstützen die Methode location.replace()? Auf der Seite </selfhtml/tecbe.htm#a11> steht, daß erst Versionen ab 4.0 diese unterstützen. Ich habe es aber mit dem MSIE3.02 probiert, und es funktionierte! Gibt es auch eine Möglichkeit, 100%-ig zu überprüfen, ob der Browser nun location.replace() kennt oder nicht?
Vielen Dank im Voraus
Gruß
Andreas
hi,
Gibt es auch eine Möglichkeit, 100%-ig zu überprüfen, ob der Browser nun location.replace() kennt oder nicht?
was ist schon 100% ;-) Du koenntest so einen workaround einbauen:
if(document.images)top.location.replace("neu.htm");
else top.location.href="neu.htm";
wenn der browser das Image objekt kennt, fuehrt er replace aus, sonst kommt location.href zum Zuge. Das duerfte meist passen.
Hilft das?
Gruss Joachim
Hallo Joachim
if(document.images)top.location.replace("neu.htm");
else top.location.href="neu.htm";wenn der browser das Image objekt kennt, fuehrt er replace aus, sonst kommt location.href zum Zuge. Das duerfte meist passen.
Hilft das?
Leider nicht beim MSIE3.02, weil der das Image Objekt nicht kennt, aber location.replace() schon.
Ich habe mal folgendes probiert:
--------------------
<script language="JavaScript">
function weiterleiten()
{
location.href="neu.htm";
}
</script>
<script language="JavaScript1.1">
function weiterleiten()
{
location.replace("neu.htm");
}
</script>
<body onLoad="weiterleiten()">
--------------------
Leider funktioniert auch das nicht mit allen Browsern. Darum würde ich gerne dort, wo es nich funktioniert, mit "navigator.appName" und "navigator.appVersion" überprüfen, ob der Browser die Methode "location.replace()" kennt.
Gruß
Andreas
hallo,
ich sach ja, wo gibt es schon 100%.
Die JS Version abzufragen ist afaik auch problematisch. In de.comp.lang.javascript wurde darauf hingewiesen, das manche Browser ein Script ausfuehren, obwohl sie es nicht (verstehen) duerften.
Die Abfrage des IMG-Objektes ist natuerlich ein workaround, also auch nicht 100%. Da als Alternative ja location.href angeboten wird, finde ich's akzeptabel, wenn irgendeiner dann doch durchs Netz faellt...shit happens (ist das auch schon patentrechtlich geschuetzt?)
Nun denn, vielleicht findet ja einer noch die 99%
Loesung
Viele Gruesse Joachim
Hallo!
if(document.images)top.location.replace("neu.htm");
else top.location.href="neu.htm";
Naja, aber es koennte ja sein (theoretisch), dass document.images bekannt ist, location.replace() aber nicht. Folgendes sollte auch funktionieren:
if (window.location.replace) top.location.replace("neu.htm");
else top.location.href="neu.htm";
Beachten: Beim ersten replace keine Klammern!
Allerdings hatte ich schon mal mit irgendeinem 4er IE einen JS-Error bei dieser Variante. Das koennte aber durchaus eines der beruehmten Microsoft-Probleme (mal geht's, mal geht's nicht, und keiner weiss warum) gewesen sein. Als ich den IE damals neu installierte, funzte es naemlich. Naja, kann ja mal jemand testen.
Calocybe