293 votes

Méthodes window.location.href et window.open () en JavaScript

Quelle est la différence entre window.location.href y window.open () en JavaScript ?

2 votes

557voto

James Hill Points 27532

window.location.href es pas une méthode, c'est une propriété qui vous indique l'emplacement actuel de l'URL du navigateur. En changeant la valeur de cette propriété, la page sera redirigée.

window.open() est une méthode à laquelle vous pouvez passer une URL que vous souhaitez ouvrir dans une nouvelle fenêtre. Par exemple :

exemple de window.location.href :

window.location.href = 'http://www.google.com'; //Will take you to Google.

exemple de window.open() :

window.open('http://www.google.com'); //This will open Google in a new window.

Informations supplémentaires :

window.open() peut recevoir des paramètres supplémentaires. Voir : tutoriel window.open

5 votes

La norme dit probablement que window.location.href est une propriété, et non une méthode, mais Internet Explorer (version 10 au moins) vous permet de traiter l'option href comme méthode aussi. Je l'ai vu fonctionner, seulement dans IE10, sur une page que j'ai utilisée. C'est probablement pour cela que le demandeur appelait href une méthode. Voir la question Incompatibilité IE avec window.location.href . Mais oui, il est préférable d'utiliser href comme une propriété, ce qui fonctionnera dans n'importe quel navigateur, y compris l'IE .

5 votes

@RoryO'Kane, cette question a été posée en 2011. Je doute que l'utilisateur fasse référence à IE 10.

9 votes

C'est vrai. Mais je pense qu'il est probable, bien que non certain, que les anciennes versions d'IE ont traitées window.location.href de la même manière. Après tout, les nouvelles versions de iE deviennent généralement más basé sur des normes, pas moins. Donc, si IE10 enfreint toujours la norme, les versions antérieures l'ont probablement fait aussi.

33voto

Tom Points 5872
  • window.open ouvrira un nouveau navigateur avec l'URL spécifiée.

  • window.location.href ouvrira l'URL dans la fenêtre dans laquelle le code est appelé.

Notez également que window.open() est une fonction sur l'objet fenêtre lui-même alors que window.location est un objet qui expose une variété de autres méthodes et propriétés .

15voto

Somnath Muluk Points 10173

Il y a déjà des réponses qui décrivent window.location.href la propriété et fenêtre.open() méthode.

J'irai par l'utilisation de l'objectif :

1. Pour rediriger la page vers une autre

Utilisez window.location.href. Définissez la propriété href sur le href d'une autre page.

2. Ouvrez le lien dans une nouvelle fenêtre ou une fenêtre spécifique.

Utilisez window.open(). Passez des paramètres en fonction de votre objectif.

3. Connaître l'adresse actuelle de la page

Utiliser window.location.href. Obtenez la valeur de la propriété window.location.href. Vous pouvez également obtenir un protocole spécifique, un nom d'hôte, une chaîne de hachage à partir de l'objet window.location.

Ver Objet de l'emplacement pour plus d'informations.

14voto

Greg Gra Points 124

fenêtre.ouverte est une méthode ; vous pouvez ouvrir une nouvelle fenêtre, et la personnaliser. window.location.href est juste une propriété de la fenêtre actuelle.

9voto

Joseph Silber Points 69582

window.open () ouvrira une nouvelle fenêtre, tandis que window.location.href ouvrira la nouvelle URL dans votre fenêtre actuelle.

1 votes

Window.open() peut également ouvrir l''url' dans la même fenêtre si '_self' est passé comme paramètre supplémentaire.

0 votes

Oui, j'ai eu le même doute. Quelle est la différence entre utiliser window.open(newUrl, '_self') et location.href = newUrl` ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X