Was ist die bevorzugte Methode, um den Speicherort der aktuellen Webseite mit JavaScript zu ändern? Ich habe sowohl window.navigate als auch document.location gesehen. Gibt es Unterschiede im Verhalten? Gibt es Unterschiede in den Browser-Implementierungen?Sollte ich window.navigate oder document.location in JavaScript verwenden?
Antwort
window.location.href = 'URL';
ist die Standardimplementierung zum Ändern der aktuellen Fensterposition.
Es gibt wirklich keinen Unterschied; Es gibt ungefähr 5 verschiedene Methoden, dies zu tun. Die am häufigsten angezeigten sind jedoch document.location
und window.location
, da sie von allen gängigen Browsern unterstützt werden. (Ich habe nie gesehen window.navigate
in Produktionscode verwendet, so dass es vielleicht nicht sehr guten Support?)
document.location funktioniert nicht in allen Browsern. window.location tut das. –
Hmm, funktioniert für mich. In welchem Browser funktioniert es nicht? –
Firefox unterstützt window.navigate nicht –
würde ich mit window.location = "http://...";
gehen. Ich habe einige Jahre lang JavaScript über den Browser programmiert, und ich habe noch nie Probleme mit diesem Ansatz erlebt.
window.navigate
und window.location.href
scheint mir ein bisschen seltsam.
window.location funktioniert, aber es ist technisch falsch, weil "location" ein Objekt ist. –
Aber alles in JavaScript ist ein Objekt :) – roosteronacid
Während so ziemlich alles ein Objekt in JavaScript ist, wird das Zuweisen einer Zeichenfolge zu einem Objekt den Wert normalerweise nicht auf eine seiner Eigenschaften festlegen (wie window.location oder document.location mit ihren href-Eigenschaft), ersetzt dieses Objekt jedoch durch eine Zeichenfolge. In diesem Fall wurde eine Browser-Eigenart hinzugefügt, um mit bestehenden (schrulligen) Implementierungen und älteren (und nicht so alten) Inhalten kompatibel zu sein. – PhistucK
document.locatio n eine (veraltet, aber derzeit noch) schreibgeschützte String-Eigenschaft, ersetzt durch document.URL.
window.location
wirkt sich auf Ihr Browserziel aus. document.location wirkt sich nur auf Ihren Browser und Frame/Iframe aus.
window.location
wirkt sich auch auf den Rahmen,
die beste Form i gefunden:
parent.window.location.href
Und das Schlimmste ist:
parent.document.URL
ich einen massiven Browser-Test haben, und einige Seltener IE mit mehreren Plugins wird mit der zweiten Form undefiniert.
Mit dieser Logik wäre top.window.location.href nicht besser noch? – Orwellophile
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 Ansatz
Unterstützung für document.location
ist auch gut, obwohl es eine veraltete Methode ist. Ich verwende diese Methode seit einer Weile ohne Probleme. können Sie hier finden, um weitere Informationen:
https://developer.mozilla.org/en-US/docs/Web/API/document.location
Sie Ihre Seite mit bewegen können
window.location.href =Url;
Dies fügt nicht wirklich mehr Informationen als die akzeptierte, und multiplizieren upvoted Antwort ... –
Sie könnten sogar weiter gehen und argumentieren, dass Sie einfach die akzeptierte Antwort plagiiert haben – Liam
- 1. PHP oder Javascript, die ich verwenden sollte
- 2. Sollte ich Polymorphismus in Javascript verwenden?
- 3. therubyracer oder nodejs, welche sollte ich verwenden?
- 4. JavaScript: sollte ich verwenden 'oder "char-String definieren
- 5. Javascript document.location umleiten zu einer falschen URL
- 6. Welches JavaScript-Repository sollte ich verwenden?
- 7. Sollte ich Threads oder mehrere Prozesse verwenden?
- 8. Sollte ich Int oder UInt16 verwenden?
- 9. Sollte ich em oder px verwenden?
- 10. Sollte ich SqlGeometry oder SqlGeography verwenden?
- 11. Sollte ich IB oder Unterklasse verwenden UIView
- 12. Sollte ich tsd oder typings verwenden?
- 13. Sollte ich Pylons oder Pyramid verwenden?
- 14. Sollte ich rand() oder rand_s() verwenden?
- 15. Sollte ich hier wakeFromNib oder initWithCoder verwenden?
- 16. Sollte ich string.isEmpty() oder "" .equals (string) verwenden?
- 17. Sollte ich Typklassen verwenden oder nicht?
- 18. Sollte ich ReAllocHGlobal oder FreeHGlobal/AllocHGlobal verwenden?
- 19. Wann sollte ich Subdomains verwenden oder vermeiden?
- 20. Sollte ich eval() oder call_user_func() verwenden?
- 21. Sollte ich WPF-Konverter oder Trigger verwenden?
- 22. Sollte ich Interface Builder verwenden oder nicht?
- 23. Sollte ich Angular.copy() oder _.clone() verwenden?
- 24. Sollte ich DirectInput oder Windows-Nachrichtenschleife verwenden?
- 25. Wann sollte ich @JoinColumn oder @JoinTable verwenden?
- 26. Sollte ich Klassenvererbung verwenden oder nicht?
- 27. Sollte ich Meteor.startup() oder $ (function() {}) verwenden
- 28. Sollte ich Methoden oder konstante Flags verwenden?
- 29. Sollte ich Pickle oder cPickle verwenden?
- 30. sollte ich "Set" oder "Liste" verwenden
Haben Sie einen Verweis, um anzuzeigen, dass der window.location.href die Standardimplementierung ist? Und gilt dieser Standard für alle Browser gleichermaßen? Sie scheinen sicherlich kenntnisreich zu sein und 15+ Stimmen (plus akzeptierte Antwort) helfen, es autoritativer zu machen, obwohl ich denke, dass es besser wäre, Dokumentation von den Browser-Entwicklungsteams zu sehen, um die Behauptung zu stützen. – Goyuix
@ Goyuix, es ist wahrscheinlich genauer zu sagen, dass "window.location.href" ist die vollständige Implementierung, aber 'window.location' erreicht das gleiche. Siehe http://docs.sun.com/source/816-6408-10/location.htm: "Wenn Sie der' location'-Eigenschaft eines Objekts eine Zeichenfolge zuweisen, erstellt JavaScript ein 'location'-Objekt und weist diese Zeichenfolge der 'href'-Eigenschaft zu." –
Sieht so aus, als hätten diese Leute entschieden, dass es eine persönliche Vorliebe ist: https://developer.mozilla.org/Talk:de/DOM/window.location. Oder sehen Sie sich das Beispiel unten an, sie benutzen nur 'window.location', aber das muss nicht unbedingt heißen: https://developer.mozilla.org/en/window.location. –