Was ist die bevorzugte Methode, um den Speicherort der aktuellen Webseite mithilfe von JavaScript zu ändern? Ich habe gesehen, dass sowohl window.navigate als auch document.location verwendet wurden. Gibt es Unterschiede im Verhalten? Gibt es Unterschiede bei den Browser-Implementierungen?
javascript
html
navigation
dthrasher
quelle
quelle
window.location.href
die vollständige Implementierung ist, aberwindow.location
das Gleiche erreicht. Siehe docs.sun.com/source/816-6408-10/location.htm : "Wenn Sie derlocation
Eigenschaft eines Objekts eine Zeichenfolge zuweisen , erstellt JavaScript einlocation
Objekt und weist diese Zeichenfolge seinerhref
Eigenschaft zu."window.location
aber das muss nicht unbedingt so oder so sein: developer.mozilla.org/en/window.location .window.location.href = 'URL';
und auchwindow.location.assign('URL');
die Methode, die zum Neuladen einer neuen Seite entwickelt wurde. Weitere Informationen finden Sie unter w3schools.com/jsref/obj_location.aspwindow.navigate
ist eine proprietäre Methode, die von Internet Explorer verwendet wird (ich bin mir sicher, ob andere Browser sie aus Kompatibilitätsgründen nachahmen, Chrome nicht).document.location
oderwindow.location
sind Standardobjekte (siehe die verschiedenen HTML / HTML5 / DOM-Spezifikationen).document.location = someURL
(oderwindow.location = someURL
) wird wahrscheinlich aufgrund von Legacy-Code unterstützt. Der richtige Weg istdocument.location.href = someURL
oder vielleichtdocument.location.assign(someURL)
.quelle
document.locatio n ist eine (veraltete, aber immer noch vorhandene) schreibgeschützte Zeichenfolge, die durch document.url ersetzt wird .
quelle
window.location
wirkt sich auch auf den Rahmen aus,Die beste Form, die ich gefunden habe, ist:
Und das Schlimmste ist:
Ich habe einen massiven Browsertest durchgeführt und einige seltene IE mit mehreren Plugins werden mit der zweiten Form undefiniert.
quelle
window.location
wirkt sich auf Ihr Browserziel aus. document.location wirkt sich nur auf Ihren Browser und Frame / Iframe aus.quelle
window.navigate
wird in einigen Browsern NICHT unterstützt, so dass man es vermeiden sollte. Alle anderen Methoden, die die Location-Eigenschaft verwenden, sind der zuverlässigste und konsistenteste Ansatzquelle
Ich würde mitgehen
window.location = "http://...";
. Ich codiere seit einigen Jahren browserübergreifendes JavaScript und habe bei diesem Ansatz noch nie Probleme gehabt.window.navigate
undwindow.location.href
scheint mir ein bisschen seltsam.quelle
Es gibt wirklich keinen Unterschied; Es gibt ungefähr 5 verschiedene Methoden, um dies zu tun. Die, die ich am häufigsten sehe, sind jedoch
document.location
undwindow.location
weil sie von allen gängigen Browsern unterstützt werden. (Ich persönlich habe noch nie gesehen, dasswindow.navigate
es im Produktionscode verwendet wird. Vielleicht hat es keine sehr gute Unterstützung?)quelle
Unterstützung für
document.location
ist auch gut, obwohl es eine veraltete Methode ist. Ich benutze diese Methode seit einer Weile ohne Probleme. Sie können hier für weitere Details verweisen:https://developer.mozilla.org/en-US/docs/Web/API/document.location
quelle
Sie können Ihre Seite mit verschieben
quelle