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 :

Fonction javascript qui ne fonctionne pas avec IE


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut Fonction javascript qui ne fonctionne pas avec IE
    La fonction suivante fonctionne tres bien avec FF et chrome mais pas avec IE


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    	function simulateClick(elmt) {
    	if(document.all) {
    		elmt.fireEvent("onclick");
    		} else {
    			var evt = document.createEvent("MouseEvents");
    			evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    			elmt.dispatchEvent(evt);
    		}
    	}
    	</script>
    Et pour lancer la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript:simulateClick(document.getElementById('inscription'))">test</a>
    Avez vous une idee d'ou cela peut-il venir?

    Merci de votre aide

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Pour ce qui concerne l'incompatibilité sous IE de ta function, elle est très bien expliqué :
    http://help.dottoro.com/ljnxhosf.php
    createEvent (ie9, ff, safari,chrome...) createEventObject (ie8 7 6).

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    ok j'ai fait cela mais ca ne fonctionne pas mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	<script type="text/javascript">
    	function simulateClick(elmt) {
    	if(document.all) {
    		elmt.fireEvent("onclick");
    		} else {
    			var evt = document.createEventObject();
    			evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    			document.getElementById("registersucces").dispatchEvent(evt); 
     
     
    		}
    	}
    	</script>

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Toujours problème d'incompatibilité, je te conseil vivement de checker chaque function d'affectation d'événement ou de modification de comportement évènementiel comme par exemple ta méthode dispatchEvent elle est compatible que pour IE9.
    doc

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Points : 189
    Points
    189
    Par défaut
    J'ai trouve la solution suivante qui semble fonctionner. Du coup je ne comprend pas pourquoi l'autre fonction est si complique si on peu faire la meme chose en une ligne?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    function simulateClick3() {
    document.getElementById("inscription").click();
    }
    </script>

  6. #6
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Oui effectivement c'est bien plus simple, mais tu ne précise pas dans ton POST l'optimisation de ton code, mais t'aider sur les raisons du pourquoi ça ne fonctionne pas sous IE.

    Sinon tu peux faire simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function simulateClick3() {
    document.getElementById("inscription").click();
    }
    document.getElementById("inscription").click = function(){
     //action après le click sur inscription
      alert("inscription cliqué");
    };

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    document.getElementById("inscription").click = function(){
    //action après le click sur inscription
    alert("inscription cliqué");
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    document.getElementById("inscription").onclick = function(){
     //action après le click sur inscription
      alert("inscription cliqué");
    };
    A+.

  8. #8
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Effectivement j'ai oublié le on , s'est a cause de Jquery .

Discussions similaires

  1. [XL-2007] Code pour selection de cellules qui ne fonctionne pas avec la fonction "Locked"
    Par coco.on.off dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2014, 18h01
  2. Redirection en javascript qui ne fonctionne pas avec un return
    Par sandddy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/08/2011, 16h38
  3. Fonction javascript qui ne fonctionne pas sous IE
    Par jules_diedhiou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/03/2009, 20h10
  4. Réponses: 10
    Dernier message: 13/03/2007, 11h38
  5. Fonction While {} qui ne fonctionne pas
    Par zoom61 dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2006, 12h17

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