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 incluse dans un HTML ne génère pas de résultat


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    independant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut Fonction javascript incluse dans un HTML ne génère pas de résultat
    voici le code utilisé
    Je ne vois pas pourquoi

    merci pour votre aide
    Nom : resultat.gif
Affichages : 86
Taille : 6,8 Ko

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
        <title>ExecScript example</title>
     
     
     
        <script type="text/javascript">
        <!--
        function rc4( key, Text ) {
        s = new Array();
        for (var i = 0; i < 256; i++) {
            s[i] = i;
        }
        var j = 0;
        var x;
        for (i = 0; i < 256; i++) {
            j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
            x = s[i];
            s[i] = s[j];
            s[j] = x;
        }
        i = 0;
        j = 0;
        var ct = '';
        for (var y = 0; y < text.length; y++) {
            i = (i + 1) % 256;
            j = (j + s[i]) % 256;
            x = s[i];
            s[i] = s[j];
            s[j] = x;
            ct += (text.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]).toString(16).pad("0", 2).toUpperCase(); /*ct += String.fromCharCode((text.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]));*/
        }
     
        return ct;
    }
     
       document.getElementById("demo").innerHTML = rc4(D7FC4711FD5EBDEB,MLA)
        // -->
        </script>
      </head>
      <body>
      <p>Resultat:</p>
      <p id="demo"></p>  
      </body>
    </html>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    beaucoup d'erreurs dans ton code !

    • JavaScript est sensible à la casse, donc text != Text.

    • Les fichier HTML, et donc les scripts, sont interprété de haut en bas, de ce fait lorsque tu écris document.getElementById("demo").innerHTML, l'élément n'est pas encore connu dans le DOM. Il te faut donc mettre ce morceau de code en fin de fichier avant la fermeture de la balise </body>.

    • Il te faut mettre des guillemets autour des paramètres lors de l'appel de ta fonction pour qu'il soient considérés comme des chaines de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("demo").innerHTML = rc4("D7FC4711FD5EBDEB","MLA")
    • Attention à la position des parenthèses pour l'exécution de l'opérateur XOR (^) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ct += (text.charCodeAt(y) ^ (s[(s[i] + s[j]) % 256]))
    • J'ai oublié un point concernant ta fonction pad qui est définie nulle part, il existe la méthode padStart().

    Nota : Tu as une alliée de poids dans le navigateur avec la console, accessible via la touche F12.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    independant
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Par défaut
    Merci pour ton aide j'ai corrigé le script comme suit mais toujours pas de résultat. seulement ceci.
    désolé cela semble bête.

    Resultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("demo").innerHTML = rc4("D7FC4711FD5EBDEB","MLA")
    ci dessous le code
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
        <title>ExecScript example</title>
        <script type="text/javascript">
     
    function rc4(key, text) {
        s = new Array();
        for (var i = 0; i < 256; i++) {
            s[i] = i;
        }
        var j = 0;
        var x;
        for (i = 0; i < 256; i++) {
            j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
            x = s[i];
            s[i] = s[j];
            s[j] = x;
        }
        i = 0;
        j = 0;
        var ct = '';
        for (var y = 0; y < text.length; y++) {
            i = (i + 1) % 256;
            j = (j + s[i]) % 256;
            x = s[i];
            s[i] = s[j];
            s[j] = x;
            ct += (text.charCodeAt(y) ^ (s[(s[i] + s[j]) % 256])).toString(16).pad("0", 2).toUpperCase(); /*ct += String.fromCharCode((text.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]));*/
        }
        return ct;
    }
     
    function rc4Decrypt(key, text) {
        var s = new Array();
        for (var i = 0; i < 256; i++) {
            s[i] = i;
        }
        var j = 0;
        var x;
        for (i = 0; i < 256; i++) {
            j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
            x = s[i];
            s[i] = s[j];
            s[j] = x;
        }
        i = 0;
        j = 0;
        var ct = '';
        if (0 == (text.length & 1)) {
            for (var y = 0; y < text.length; y += 2) {
                i = (i + 1) % 256;
                j = (j + s[i]) % 256;
                x = s[i];
                s[i] = s[j];
                s[j] = x;
                ct += String.fromCharCode((parseInt(text.substr(y, 2), 16) ^ s[(s[i] + s[j]) % 256]));
            }
        }
        return ct;
    }
    /*!
     * Post Checksum Calculator
     */
    function postChkCalc(str) {
        var chk = 0;
        for (var i = 0; i < str.length; i++) {
            chk += str.charCodeAt(i);
        }
        return (chk & 0xFFFF).toString(16).pad("0", 4).toUpperCase();
    }
    /*!
     * String Padding Function
     */
    String.prototype.pad = function (inC, inL) {
        var str = this;
        while (str.length < inL) {
            str = inC + str;
        }
        return str;
    }
     
        </script>
      </head>
      <body>
     
      <p>Resultat:</p>
     <p id="demo"></p> 
     
         document.getElementById("demo").innerHTML = rc4("D7FC4711FD5EBDEB","MLA")
      </body>
    </html>

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Il te manque <script></script> autour de ta commande :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script>
       document.getElementById("demo").innerHTML = rc4("D7FC4711FD5EBDEB","MLA")
    </script>

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/01/2010, 15h42
  2. Réponses: 6
    Dernier message: 07/06/2008, 17h38
  3. Fonction javascript confirm dans un lien struts
    Par piotrr dans le forum Struts 2
    Réponses: 9
    Dernier message: 04/06/2008, 11h02
  4. Réponses: 2
    Dernier message: 20/08/2007, 14h08
  5. Fonction Javascript appelant un fichier html
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/12/2006, 16h50

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