Dois-je utiliser la fenêtre.naviguer ou d'un document.emplacement en JavaScript?
Quelle est la méthode préférée à utiliser pour modifier l'emplacement de la page web actuelle à l'aide de JavaScript? J'ai vu les deux fenêtre.naviguer et de document.emplacement utilisé. Existe-il des différences dans le comportement? Existe t il des différences dans le navigateur implémentations?
InformationsquelleAutor dthrasher | 2009-06-04
Vous devez vous connecter pour publier un commentaire.
est la norme de mise en œuvre de la modification de la fenêtre actuelle de l'emplacement.
window.location.href
est la mise en œuvre complète, maiswindow.location
accomplit la même chose. Voir docs.sun.com/source/816-6408-10/location.htm: "Si vous affectez une chaîne à lalocation
propriété d'un objet, JavaScript crée unlocation
objet et affecte la chaîne de seshref
de la propriété."window.location
mais qui n'indique pas nécessairement de la manière suivante: developer.mozilla.org/en/window.location.window.location.href = 'URL';
et aussiwindow.location.assign('URL');
la méthode qui est conçu pour recharger une nouvelle page. Plus d'informations peuvent être trouvées w3schools.com/jsref/obj_location.aspwindow.navigate
est une méthode propriétaire, utilisé par Internet Explorer (je suis pas certaine que les autres navigateurs imite pour la compatibilité, Chrome ne fonctionne pas).document.location
ouwindow.location
sont des objets standard (voir les différents HTML/HTML5/DOM caractéristiques).document.location = someURL
(ouwindow.location = someURL
) est probablement pris en charge en raison de l'héritage de code. La bonne façon de le faire estdocument.location.href = someURL
, ou peut-êtredocument.location.assign(someURL)
.document.emplacn est une (obsolète, mais toujours présent) en lecture seule chaîne de propriété, remplacé par document.url.
window.location
affecte également pour le cadre,le meilleur moyen que j'ai trouvé est:
Et le pire, c'est:
J'ai fait un énorme test du navigateur, et de quelques rares c'est à dire avec plusieurs plugins obtenez pas défini avec la seconde forme.
window.location
affectera à votre navigateur cible.document.l'emplacement ne touchera à votre navigateur et frame/iframe.
window.navigate
n'est PAS pris en charge dans certains navigateurs, de sorte qu'on devrait être évitée. Aucune des autres méthodes à l'aide de l'emplacement de la propriété sont les plus fiables et cohérentes approcheJ'irais avec
window.location = "http://...";
. J'ai été le codage de la croix-navigateur JavaScript pour quelques années, et j'ai jamais eu de problèmes à l'aide de cette approche.window.navigate
etwindow.location.href
semble un peu étrange pour moi.Il n'y a vraiment pas une différence; il y a environ 5 méthodes différentes de le faire. Cependant, ceux que je vois le plus souvent, sont
document.location
etwindow.location
parce qu'ils sont pris en charge par tous les principaux navigateurs. (Je n'ai personnellement jamais vuwindow.navigate
utilisé dans le code de production, de sorte que peut-être il n'a pas un très bon support?)soutien pour
document.location
est également bon, si c'est un méthode dépréciée.J'ai été en utilisant cette méthode pour un certain temps sans aucun problème.
vous pouvez consulter ici pour plus de détails:
https://developer.mozilla.org/en-US/docs/Web/API/document.location
Vous pouvez déplacer votre page à l'aide de