[Javascript]Différence entre self.location et document.location

Différence entre self.location et document.location [Javascript] - HTML/CSS - Programmation

Marsh Posté le 06-12-2003 à 07:29:28    

Hello,
Je connais très mal JS, et pour mon site j'ai besoin de rediriger la page. J'ai coisé 2 syntaxes :
self.location.href = "...";
document.location.href = "...";
J'arrive pas à trouver la différence entre les deux, c'est quoi ?

Reply

Marsh Posté le 06-12-2003 à 07:29:28   

Reply

Marsh Posté le 06-12-2003 à 13:18:18    

Des syntatxes, y'en a plein !
 
Elle n'ont pas toutes les même significations, et ne sont pas toutes standards.
 
Dans tes exemple :  
 
1- self.location.href  
'self' , c'est la fenêtre de navigation, donc équivalent à window.
'location', c'est un objet qui représente la 'location' d'un document. Cet objet hérite de 'url'
'href', c'est la propriété qui contient l'url du document.
 
2- document.location.href  
'document', c'est le document en cours dans la fenêtre.
 
En fait, il n'est pas très correcte de modifier la propriété href directement. Il vaut mieux utiliser la méthode replace() :
 
self|window|document.location.replace('http://www.google.fr');
 
Maintenant, si tu as une page avec des frames, tu as toujours, UNE 'window', mais plusieurs 'document'.
Si tu utilise self ou window, toute le fenêtre sera remplacée par le nouveau site. Mais si tu utilise le document d'une frame, seule cette frame sera remplacée.
 
Maitenant, les objets ont aussi des propriété par défaut.
Si tu fait :
location = 'http://www.google.fr';
Ben çà va marcher aussi, parce-que href est la propriéré par défaut de location.
Dans ce cas, il faut aussi savoir que location est un alias de window.location et non pas de document.location :D
 
Bien entendu, ceci n'est qu'un résumé très succinct...
 
Facile le Javascript non ?


Message édité par Mara's dad le 06-12-2003 à 13:19:12

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 06-12-2003 à 13:43:18    

Une doc officielle :
http://devedge.netscape.com/central/javascript/
 
Maintenant, il faut bien comprendre que Javascrip est juste un language. L'objet document ou window ne fait pas partie de la définition du language. Se sont juste des objets prédéfinis par le navigateur qui permettent à un script (en javascript) d'avoir accès et de manipuler le document. Ils (document, window...) font partie de ce qu'on appelle le DOM (Document Object Model) dont la définition est là : http://www.w3.org/DOM/
Il est défini par le w3c. Ce qui est normal, vu que c'est le w3c qui défini HTML et que le DOM est fait pour définir comment manipuler les object HTML...
 
Bien sûr tout çà c'est des recomendations. Les éditeurs de navigateurs font ce qu'ils veulent :D
 
Bienvenu dans un monde de FOUS !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 06-12-2003 à 13:52:07    

Un autre lien : http://devedge.netscape.com/librar [...] index.html


Message édité par Mara's dad le 06-12-2003 à 13:52:16

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 06-12-2003 à 18:32:12    

Ouch! Je m'attendais pas à autant. Merci pour ta réponse détaillée.
En fait je me plonge pas vraiment dans le JS, c'est juste pour une page, que voilà :
http://coding.bug.free.fr/securite/javascript/private/
Dis moi ce que tu en pense. Elle doit^pas être bonne car ça fonctionne sous IE et Opera, mais pas sous Moz & Netscape.
Je pense que c'est l'input qui fait pas partie d'un formulaire, mais comme je veux pas d'un formulaire (pas de POST) je vois pas comment faire. Une fonction de validation qui return tjrs false me parraît cochon.
Merci à tio.

Reply

Marsh Posté le 06-12-2003 à 20:12:28    

au lieu de name, utilise ID :
<input type="text" id="password">
 
Pour récupérer sa valeur :
var pw = document.getElementById( 'password' ).value
 
Cela dit ton controle d'accès est vraiment limite !
Tu connais pas .htaccess ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 06-12-2003 à 20:54:50    

Merci, ça marche sous Moz et Ns maintenant. Dernier détail, tjrs sous ces 2 là, j'ai pas le focus qui se met des le debut sur la saisie du mdp.
Et pour tous les navigateurs, j'aimerais que quand on tape sur entré ca fasse pareil que click sur le bouton.

Citation :


Cela dit ton controle d'accès est vraiment limite !
Tu connais pas .htaccess ?


Mais ce truc est donné en exemple pour les cas où on ne peut faire autrement qu'utiliser Javascript (chez Wanadoo notamment).
Si tu as un peu de temps, tu peux jeter un oeil à ça voir si je dit pas trop de bêtises :
http://coding.bug.free.fr/securite/javascript/js.htm
J'ai fait ça pour suite à un coup de main filé à plusieurs mecs pour corriger leur protection.
Le lien donné (private) est juste un exemple. Y'a rien dans le répertoire.


Message édité par HelloWorld le 06-12-2003 à 20:55:43
Reply

Marsh Posté le 06-12-2003 à 22:49:36    

je met un ptit drapo histoire de récupérer les liens JS un peu plus tard :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed