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

jQuery Discussion :

Injection de javascript


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 56
    Par défaut Injection de javascript
    Bonjour,

    J'essaie de développer un plugin pour firefox. Pour m'entrainer j'ai pris le site netxp.com.

    Dans le menu, à coté de "contact" je fais apparaitre un bouton "eat me", et j'aimerais que quand on clique dessus, la page disparaissent et affiche juste "this page has been eaten" (inspiré de la doc : https://addons.mozilla.org/en-US/dev...pts/index.html)

    Pour faire apparaitre le bouton, pas de souci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //edit : ajout de la guillemet (voir message suivant)
    var injection = ' <li id="menu_7"> <input id="imhungry" type="button" value="eat me !"/> </li>';
    $(injection).insertAfter('#menu_6');
    Encore que : quand je regarde le code source de la page : je n'ai pas
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <li id="menu_7">
        <input id="imhungry" type="button" value="eat me !"/>
    </li>
    mais
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <li id="menu_7">
        <input id="imhungry" type="button" value="eat me !"/>
        </input>
    </li>

    Je veux ensuite ajouter une action à mon bouton, j'essaie la méthode donnée dans la section "Messaging From Page Script to Content Script" de cette page

    Le code est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var injection = ' <script> function sendMessage() { var event = document.createEvent("eatMe"); event.initCustomEvent("addon-message", true, true, { hello: "world" }); document.documentElement.dispatchEvent(event); } </script> <li id="menu_7"> <input id="imhungry" type="button" value="eat me !" onclick="sendMessage()"/> </li>';
     
     
    $(injection).insertAfter('#menu_6');
     
     
    document.documentElement.addEventListener("addon-message", function(event) {
      console.log(JSON.stringify(event.detail));
      alert();
    }, false);
    Sauf que le click sur le bouton ne fait rien. Pire, la partie <script> ... </script> que j'injecte n'apparait pas dans le code source.

  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
    Tu ne remarques pas qu'il manque l'ouverture des quotes (") ?
    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 averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 56
    Par défaut
    Si merci. Malgré tout, après correction j'ai toujours le même problème. Le code que j'injecte semble "corrigé" par la page : les balises <script> disparaissent et j'ai une balise fermante </input> qui apparait. Je sais pas si c'est lié à la page, à mon navigateur (firefox 22), ou à mon code javascript...

Discussions similaires

  1. Injection de javascript dans html
    Par Tristan Zwingelstein dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/10/2011, 20h39
  2. Injecter une page asp dans une autre avec javascript
    Par hwoarang dans le forum ASP.NET
    Réponses: 3
    Dernier message: 14/02/2011, 14h01
  3. Injection javascript inconnue dans mon site (regarder le code)
    Par chrisdayton dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/03/2010, 09h03
  4. Se protéger des injections javascript
    Par christophetd dans le forum Langage
    Réponses: 5
    Dernier message: 23/01/2009, 07h26
  5. [SQL] Protéger les requetes SQL d'injection comme du php, javascript, ect
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/06/2007, 15h32

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