E.href javascript ????
Fermé
fragcreator
-
9 janv. 2008 à 21:10
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 12 janv. 2008 à 17:59
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 12 janv. 2008 à 17:59
A voir également:
- E.href javascript ????
- Telecharger javascript - Télécharger - Langages
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
- Javascript echo ✓ - Forum PHP
- Exercice calculatrice en javascript ✓ - Forum Javascript
- Retour à la ligne javascript ✓ - Forum Javascript
11 réponses
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
9 janv. 2008 à 23:21
9 janv. 2008 à 23:21
Hello,
Dans
<a href="link.html" onClick="function_one(this,123);">
Le "this" représente la balise en cours (donc l'objet tag "a") ; c'est ce qui est passé pour l'argument "e"...
La première condition s'applique uniquement pour Internet Explorer... "event" doit sûrement contenir l'objet ayant provoqué l'événement mais ne me demande pas pourquoi le réaffecter si "this" le fait déjà, peut être que c'est un objet plus complet.
Par contre je ne savais pas que cet objet contient une propriété "type" accessible depuis JS qui définit apparemment le type de l'événement ayant survenu... on en apprend tous les jours.
Enfin c'est souvent difficile de savoir avec ce genre de scripts générés automatiquement par les CMS... on ne sait jamais quel événement provoque un événement automatique sur un autre et ça peut être défini à plusieurs endroits. Bref :
"e.href" est donc censé contenir "link.html" au moment du clic... tu peux vérifier cela en faisant un "window.alert(e.href);"
;-)
Dans
<a href="link.html" onClick="function_one(this,123);">
Le "this" représente la balise en cours (donc l'objet tag "a") ; c'est ce qui est passé pour l'argument "e"...
La première condition s'applique uniquement pour Internet Explorer... "event" doit sûrement contenir l'objet ayant provoqué l'événement mais ne me demande pas pourquoi le réaffecter si "this" le fait déjà, peut être que c'est un objet plus complet.
Par contre je ne savais pas que cet objet contient une propriété "type" accessible depuis JS qui définit apparemment le type de l'événement ayant survenu... on en apprend tous les jours.
Enfin c'est souvent difficile de savoir avec ce genre de scripts générés automatiquement par les CMS... on ne sait jamais quel événement provoque un événement automatique sur un autre et ça peut être défini à plusieurs endroits. Bref :
"e.href" est donc censé contenir "link.html" au moment du clic... tu peux vérifier cela en faisant un "window.alert(e.href);"
;-)
alors j'ai essayer le windows alert et ca ne donne rien enfin l'alert ne se lance pas alors que si je met seulement href dans l'alert ca marche !
conclusion je ne sait tojours pas a quoi correspond ce "e" ???
conclusion je ne sait tojours pas a quoi correspond ce "e" ???
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
10 janv. 2008 à 21:50
10 janv. 2008 à 21:50
De rien.
si je met seulement href dans l'alert ca marche !
Ca ne doit pas... si tu as mis l'alert là où tu étais supposé le mettre (c'est à dire au tout début de la fonction), "href" est une variable indéfinie (à moins qu'elle ne soit déclarée en global). J'insiste : "e.href" contient l'adresse représentée par <a href="...."></a> Par contre c'est "e.type" qui ne donne rien chez-moi.
si je met seulement href dans l'alert ca marche !
Ca ne doit pas... si tu as mis l'alert là où tu étais supposé le mettre (c'est à dire au tout début de la fonction), "href" est une variable indéfinie (à moins qu'elle ne soit déclarée en global). J'insiste : "e.href" contient l'adresse représentée par <a href="...."></a> Par contre c'est "e.type" qui ne donne rien chez-moi.
arf, alors je ne comprend plus rien .
meme en mettant au debut de la fonction avec e.href aucune alerte !?!
meme en mettant au debut de la fonction avec e.href aucune alerte !?!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
10 janv. 2008 à 22:09
10 janv. 2008 à 22:09
Je serais curieux de voir comment tu t'y prends... moi je m'y suis pris comme ça :
<html> <head> <script type="text/javascript"> function function_one(e,i){ alert("e : " + e + "\ne.type : " + e.type + "\ne.href : " + e.href); } </script> </head> <body> <a href="link.html" onClick="function_one(this,123);">Test e</a> </body> </html>
Bonjour,
A mon avis il y a une erreur dans le code de départ.
On passe effectivement l'objet <a> à la fonction.
Mais e est réaffecté au window.event qui a déclenché l'appel de la fonction (e=event )
Puis le e.href essaie d'accéder à la propriété href du <a> passé en paramètre à la fonction... Ce qui est impossible car e a été réaffecté.
Un même nom de variable pour 2 objets différents...
Il suffit de changer le nom du paramètre et cela devrait fonctionner...
Cordialement,
Jres
A mon avis il y a une erreur dans le code de départ.
On passe effectivement l'objet <a> à la fonction.
Mais e est réaffecté au window.event qui a déclenché l'appel de la fonction (e=event )
Puis le e.href essaie d'accéder à la propriété href du <a> passé en paramètre à la fonction... Ce qui est impossible car e a été réaffecté.
Un même nom de variable pour 2 objets différents...
Il suffit de changer le nom du paramètre et cela devrait fonctionner...
Cordialement,
Jres
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
11 janv. 2008 à 19:08
11 janv. 2008 à 19:08
Bonjour Jres,
J'aimerais réagir sur ta déclaration "e est réaffecté au window.event [...] (e=event )" .
En réalité on ne passe dans cette instruction que si "document.all", c'est à dire en présence d'IE seulement (http://fr.selfhtml.org/javascript/objets/all.htm#generalites). Je viens de tester sous IE et effectivement "window.event" ne contient plus du tout l'objet tag "<a>" par contre le "type" est affiché.
Quoiqu"il en soit j'ai un affichage dans tous les cas donc je suppose que notre ami a mal placé ses instructions de test.
J'aimerais réagir sur ta déclaration "e est réaffecté au window.event [...] (e=event )" .
En réalité on ne passe dans cette instruction que si "document.all", c'est à dire en présence d'IE seulement (http://fr.selfhtml.org/javascript/objets/all.htm#generalites). Je viens de tester sous IE et effectivement "window.event" ne contient plus du tout l'objet tag "<a>" par contre le "type" est affiché.
Quoiqu"il en soit j'ai un affichage dans tous les cas donc je suppose que notre ami a mal placé ses instructions de test.
mais en fait j'ai l'impression que vous croyez que le code ne fonctionne pas ?
Il fonctionne j'aimerais juste savoir a quoi correspond e.href, en gros qu'est ce que ca veut dire pour pouvoir le modifier !
Merci
Il fonctionne j'aimerais juste savoir a quoi correspond e.href, en gros qu'est ce que ca veut dire pour pouvoir le modifier !
Merci
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
12 janv. 2008 à 00:11
12 janv. 2008 à 00:11
Bonsoir,
Tu te trompes. On suit simplement les instructions de la fonction (on la décortique pour toi, pour que tu comprennes justement ce qu'elle fait). Et on te dit donc que selon le contexte général et le navigateur utilisé, ça varie... mais e.href (pour la nième fois) correspond à l'adresse absolue du lien. Je t'ai donné un moyen de vérification et là tu as dit que ça ne fonctionne pas... donc j'en reste supris parce que si le moyen de vérification que je t'ai donné ne fonctionne pas, le code ne peut pas fonctionner non plus. En informatique c'est simple, si on veut connaître ce que contient une variable on affiche sa valeur. ;-)
Tu te trompes. On suit simplement les instructions de la fonction (on la décortique pour toi, pour que tu comprennes justement ce qu'elle fait). Et on te dit donc que selon le contexte général et le navigateur utilisé, ça varie... mais e.href (pour la nième fois) correspond à l'adresse absolue du lien. Je t'ai donné un moyen de vérification et là tu as dit que ça ne fonctionne pas... donc j'en reste supris parce que si le moyen de vérification que je t'ai donné ne fonctionne pas, le code ne peut pas fonctionner non plus. En informatique c'est simple, si on veut connaître ce que contient une variable on affiche sa valeur. ;-)
Oui c'est exactement ce que j'ai essayer de faire avant de poser la question sur le forum.
Lorsque j'"alert" seulement le e ca ne donne rien lorsque j'"alert" le e.href rien non plus il y as seulement que lorsque j'"alert" le href que j'obtient ladresse de la page.
c'est vraiment bizarre
Lorsque j'"alert" seulement le e ca ne donne rien lorsque j'"alert" le e.href rien non plus il y as seulement que lorsque j'"alert" le href que j'obtient ladresse de la page.
c'est vraiment bizarre
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
12 janv. 2008 à 00:22
12 janv. 2008 à 00:22
:-s Effectivement très étrange.
Pourrais-tu poster les différents codes (donc les 3 versions de la fonction) avec tes alert s'il te plait ? Et aussi nous dire avec quel navigateur tu as réalisé les tests et quelles valeurs tu obtiens ? Merci.
Pourrais-tu poster les différents codes (donc les 3 versions de la fonction) avec tes alert s'il te plait ? Et aussi nous dire avec quel navigateur tu as réalisé les tests et quelles valeurs tu obtiens ? Merci.
Alors voici les 3 versions
1. Celle ci ne donne rien sur ie et firefox
function function_one(e,i){
if(document.all)e=event
if(e.type=="click"){
if(document.images)
alert( e.href);
return true;
}
2. Celle ci ne donne rien non plus
function function_one(e,i){
if(document.all)e=event
if(e.type=="click"){
if(document.images)
alert( e);
return true;
}
3. Celle ci donne l'adresse de la page en cour
function function_one(e,i){
if(document.all)e=event
if(e.type=="click"){
if(document.images)
alert(href);
return true;
}
1. Celle ci ne donne rien sur ie et firefox
function function_one(e,i){
if(document.all)e=event
if(e.type=="click"){
if(document.images)
alert( e.href);
return true;
}
2. Celle ci ne donne rien non plus
function function_one(e,i){
if(document.all)e=event
if(e.type=="click"){
if(document.images)
alert( e);
return true;
}
3. Celle ci donne l'adresse de la page en cour
function function_one(e,i){
if(document.all)e=event
if(e.type=="click"){
if(document.images)
alert(href);
return true;
}
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
12 janv. 2008 à 17:59
12 janv. 2008 à 17:59
Ok merci bien pour ce rapport :-)
Je commence à comprendre la bizarreté de la chose...
En fait je ne comprenais pas pourquoi dans certains cas tu avais un affichage et dans d'autres pas mais vu l'endroit où tu places l'instruction d'affichage ça m'étonne moins du coup... Ca m'étonne moins mais plus dans le sens où je ne comprends pas d'où vient la variable "href"... je pense que venant d'un CMS ce code est lié à d'autres choses comme je l'ai supposé plus haut (en plus d'être douteusement écrit si tu l'as recopié correctement).
Je ne pense pas pouvoir t'aider davantage désolé.
Je commence à comprendre la bizarreté de la chose...
En fait je ne comprenais pas pourquoi dans certains cas tu avais un affichage et dans d'autres pas mais vu l'endroit où tu places l'instruction d'affichage ça m'étonne moins du coup... Ca m'étonne moins mais plus dans le sens où je ne comprends pas d'où vient la variable "href"... je pense que venant d'un CMS ce code est lié à d'autres choses comme je l'ai supposé plus haut (en plus d'être douteusement écrit si tu l'as recopié correctement).
Je ne pense pas pouvoir t'aider davantage désolé.