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 :

HTML5 et IE8


Sujet :

JavaScript

  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut HTML5 et IE8
    Bonjour,

    j'ai intégré dans mon code un script qui devait permettre IE8 d'exécuter du html5, mais ce n'est pas le cas ; pourquoi ?

    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
    23
    24
    25
    26
    27
    28
    29
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <title>Test data-attributes</title>
    	<!--[if lte IE 8]>
    		<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    	<![endif]--> 
      </head>
      <body>
     
        <section>
          <a href="test_css.html">Retour</a>
            <form>
                Entrez votre numéro (data-infos=15) : <input type="text" id="donnee" data-infos="15" onchange="mafonction()" />	
    <br/><br/><script>
                    function mafonction(){
                        var infos = document.getElementById('donnee').value;
                        var monelement = document.getElementById('donnee');
     
                        var element = monelement.dataset.infos;
     
                        document.getElementById('result').value=parseInt(infos)+parseInt(element);
                    }
                </script>
               <br/> Résultat : <input type="text" id="result" />
            </form>
        </section>
      </body></html>
    en l'occurrence, si je rentre une valeur dans le premier champ, celle-ci est censée être affichée dans le second champ additionnée de 15, or si c'est bien le cas avec Firefox, non avec IE8.

  2. #2
    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
    J'imagine que tu as lu attentivement la doc et que tu t'es assuré que ton script prend en charge les dataset...
    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

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Non, j'avoue que pour moi, c'était HTML5 ou non (mais faut savoir que j'ai découvert le HTML5 cette semaine...)
    Et de doc, même en cherchant sur Google, je n'ai trouvé que cette page qui dit "partiellement" supporté ; donc moyen. A défaut, j'ai essayé de remplacer la fonction par du javascript :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function mafonction() {
    	var infos=document.getElementById('donnee').value;
    	//var element=monelement.dataset.infos;
    	var monelement = document.getElementById('donnee');
    // Lecture d'une valeur
    	var data-infos = monelement.getAttribute('data-infos');
    	document.getElementById('result').value=parseInt(infos)+parseInt(data-infos);
    }
    mais ça veut pas non plus

  4. #4
    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
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var data-infos


    J'imagine que si on te dit d'apprendre JavaScript, ce sera encore trop te demander...
    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

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    OK, pas de - dans une variable js...mais même avec
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function mafonction() {
    	var infos=document.getElementById('donnee').value;
    	//var element=monelement.dataset.infos;
    	var monelement = document.getElementById('donnee');
    // Lecture d'une valeur
    	var datainfos = monelement.getAttribute('data-infos');
    	document.getElementById('result').value=parseInt(infos)+parseInt(datainfos);
    }
    ça marche toujours pas...

    Et si je rajoute un alert :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    alert('result='+parseInt(infos)+parseInt(datainfos));
    je vois que les 2 nombres sont concaténés et pas additionnés (normal, vu qu'en js, le + est le symbôle de la concaténation), mais du coup, comment faire ?

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    En rajoutant des parenthèses tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert('result='+(parseInt(infos)+parseInt(datainfos)));

  7. #7
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Merci pour le truc des parenthèses (simple mais il faut le savoir) par contre, j'arrive toujours pas à faire marcher le dataset avec IE8 :
    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
    <form>
    numéro : (data_infos=15) : <input type="text" id="donnee" data-infos="15" onchange="mafonction()"/>
    <!-- data-infos="15" onchange="mafonction()" -->
    <br/>
    <script>
    function mafonction() {
            var infos=document.getElementById('donnee').value;
            //var element=monelement.dataset.infos;
            var monelement = document.getElementById('donnee');
    // Lecture d'une valeur
            var datainfos = monelement.getAttribute('data-infos');
            alert('infos:'+infos +'  data-infos:'+datainfos+'  result='+(parseFloat(infos)*1+parseFloat(datainfos)*1));
            document.getElementById('result').value=((parseFloat(infos)*1+parseFloat(datainfos)*1));
    }
    </script>
    <br/>
    Résultat : <input type="text" id="result" value=""/>
    <input type="submit" value="entrer">
    </form>


    EDIT : j'ai remplacé les parseInt par des parseFloat et rajouté des *1 pour l'avoir lu sur d'autres fils de discussion, mais ça ne change rien

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Par défaut
    Ton code tel qu'il est là fonctionne, sauf que ton event onchange n'est pas forcément le bon, puisqu'il est trigger seulement si tu as un vrai changement dans le champ ou si tu focusout (blur) le champ.

    Donc utilise onkeyup c'est mieux.

    ensuite tu peux très bien simplifier ton code en faisant ça :
    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
    23
    24
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>JS Bin</title>
    </head>
    <body>
    <form>
    numéro : (data_infos=15) : <input type="text" id="donnee" data-infos="15" onkeyup="mafonction(this)"/>
    <!-- data-infos="15" onchange="mafonction()" -->
    <br/>
    <script>
    function mafonction(monelement) {
        var infos=monelement.value;
            var datainfos = monelement.getAttribute('data-infos');
            document.getElementById('result').value=infos*1+datainfos*1;
    }
    </script>
    <br/>
    Résultat : <input type="text" id="result" value=""/>
    <input type="submit" value="entrer">
    </form>
    </body>
    </html>

  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
    Citation Envoyé par laurentSc
    j'ai remplacé les parseInt par des parseFloat et rajouté des *1
    Oui... en gros, tu t'amuses (comme le fait remarquer arnogues) à faire plusieurs fois la même chose parce que tu ne sais pas exactement ce que fais le code que tu écris... Tant qu'à faire, essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (parseFloat(+Number(infos)-0)*1+parseFloat(+Number(datainfos)-0)*1)
    Ensuite, même si ce n'est pas à proprement parler une erreur syntaxique, la position de ton script dans la page relève au mieux de l'incohérence... lorsqu'on écrit du code que l'on veut maintenir facilement, on essaye d'organiser un minimum les choses... Ce qui semble encore montrer que tu ne maitrises pas du tout qui fait quoi ni quand...
    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

  10. #10
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Merci, avec le onkeyup, ça fonctionne...et Bovino, c'était pas pour m'amuser : j'avais lu cette recommandation dans un post et l'avais essayée...

  11. #11
    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
    Ouais... enfin, ce sur quoi je voulais mettre le doigt, ce n'était pas que tu t'amuses mais le fait que tu ne comprends pas le code que tu écris, ce qui est largement plus inquiétant...
    J'aimerais bien voir où tu as vu qu'il était utile de multiplier par 1 le résultat d'un parseFloat()...
    Que tu aies pu voir la multiplication par 1 comme dans l'exemple donné par arnogues est largement envisageable, car c'est une des méthodes pour transtyper dynamiquement une chaine en nombre, mais dans le code que tu as donné, ça ne sert à rien sinon à montrer que tu ne comprends pas ce que fait ton propre code...
    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. problème activité IE8
    Par Lancelot du Lac dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 08/04/2008, 06h12
  2. IE8 et le demi-tour de Microsoft
    Par Lancelot du Lac dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 08/03/2008, 08h05
  3. HTML5 Dessin dans une page
    Par sekaijin dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/01/2007, 09h05

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