IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[DOM] attachEvent() ne fonctionne pas sous IE6


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut [DOM] attachEvent() ne fonctionne pas sous IE6
    Bonjour à tous,

    Mon problème est dans le titre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <input type="button" value="Bouton 1" id="Btn_1" onclick="test(event)"/>
     
     
    function test(event){
    	alert("test")
    }
     
    document.getElementById("Btn_1").attachEvent("onclick",test);
    Quelqu'un pourrait m'aider ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    ne te casse pas la tête avec les attachEvent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("Btn_1").onclick  = function(){test()};
    [edit]
    Je n'ai pas vu que tu voulais transmettre à ta fonction l'objet event . Là c'est plus subtil cf. cette discussion :
    http://www.developpez.net/forums/d66...es-this-event/
    [/edit]

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("Btn_1").onclick  = function(e){test(e)};
    tout simplement ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    Aucun succés avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    document.getElementById("Btn_1").onclick = function(event){test(event)};
     
    document.getElementById("Btn_1").onclick = function(){test()};
     
    document.getElementById("Btn_1").onclick = function(){alert("test")};
     
    document.getElementById("Btn_1").onclick = function(event){alert("test")};

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    1- tu as lu mon lien ?

    2- ton document.getElementById(), tu l'appelles quand ? Dans le header lors du onload de la page ou à la fin de ton document ? Tu ne peux pas faire de document.getElementById() tant que l'objet ciblé n'a pas été instancié (la fonction retourne null dans ce cas).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    Oui j'ai lu ton lien, je n'ai pas tout compris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function() {move(...)}
    Je l'appel dans un onload en effet.

    Je viens de refaire un test avec "attachEvent()".
    Il ne fonctionne que lorsque je clique sur mon bouton et il m'affiche 2 "alert".


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <html><!--  xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr" -->
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    	<script type="text/javascript">
    		function test(e){
    			alert(e.srcElement.id)
    			//alert("test")
    		}
     
     
    		function load(){
     
    			//document.getElementById("btn").onclick = function(e){test(e)};
     
    			document.getElementById("btn").attachEvent("onclick",test);
    		}
    	</script>
    	<title>Web Magasin</title>
    </head>
    <body onload="load()">
     
    	<input type="button" value="test" id="btn" onclick="test(event)"/>
     
    </body>
    </html>

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Je viens de refaire un test avec "attachEvent()".
    Il ne fonctionne que lorsque je clique sur mon bouton et il m'affiche 2 "alert".
    Ca, c'est normal, quand tu cliques, tu déclenches le attachEvent puis le onclick (celui de l'input)
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Par défaut
    OK autant pour moi.

    attachEvent() ou onclick affect un événement a une balise.
    Moi je croyais que ça remplaçait l'action de l'utilisateur.

    Comment puis-je faire alors pour cela?

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben si :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Test</title>
    <script type="text/javascript">
    <!--// [CDATA[ 
            window.onload = function(){
                    document.getElementById("Btn_1").onclick  = function(e){test(e)};
            }
            function test(event){
                    alert("test : " + event)
            }
    // ]] -->
    </script> 
    </head>
    <body>
    <div>
    	<input type="button" value="Bouton 1" id="Btn_1" />
    </div>
    </body>
    </html>
    Fonctionne très bien sur IE6 (sauf bien sûr que event est undefined).
    Le problème reste de savoir où tu déclares le gestionnaire d'événement...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/03/2011, 15h39
  2. Fichier .js ne fonctionnant pas sous ie6
    Par Kikkoman dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 06/01/2009, 15h38
  3. [XHTML 1.0] Map ne fonctionne pas sous ie6
    Par goldor dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/12/2008, 19h59
  4. Dropdown menu ne fonctionne pas sous IE6
    Par Maggus dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 20/06/2008, 13h47
  5. button:hover ne fonctionne pas sous IE6
    Par mathieugamin dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 16/05/2007, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo