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 :

userscript greaseMonkey et jquery


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut userscript greaseMonkey et jquery
    Bonjour,

    Je tente de comprendre le fonctionnement et la portée de jquery dans greaseMonkey

    Voici mon code
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    var $;
     
    // Add jQuery
    (function(){
    	if (typeof unsafeWindow.jQuery == 'undefined') {
    		var GM_Head = document.getElementsByTagName('head')[0] || document.documentElement,
    			GM_JQ = document.createElement('script');
     
    		GM_JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
    		GM_JQ.type = 'text/javascript';
    		GM_JQ.async = true;
     
    		GM_Head.insertBefore(GM_JQ, GM_Head.firstChild);
    	}
    	GM_wait();
    })();
     
    // Check if jQuery's loaded
    function GM_wait() {
    	if (typeof unsafeWindow.jQuery == 'undefined') {
    		window.setTimeout(GM_wait, 100);
    	} else {
    		$ = unsafeWindow.jQuery.noConflict(true);
    		letsJQuery();
    	}
    }
     
    // All your GM code must be inside this function
    function letsJQuery() {
     
     
          //Ici la ou les fonctions à inserer 
            function foo(){
            alert('bar')
            $("#barreOutils").append("<input type=\"button\" value=\"test\" />")
           }
     
          //Document.ready sur la page 
          $(document).ready(function(){
     
            $("head:eq(0)").append( $('<script />').attr("type","text/javascript").text(foo.toString() +"\n foo()") )
          })
    }
    La première partie du code permet l'utilisation de jquery dasn GM,

    Ce qui m'echappe c'est que j'ai bien l'alert, mais pas l'insertion du bouton ..
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 23
    Par défaut
    Il ne te manquerais pas des ; à la fin de tes .append() ??
    et à la fin de l'alert() aussi ???

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    non a priori le toString ou toSource (testé egalement) retourne bien les retours ligne.

    La console firebuf me dit
    TypeError: $ is not a function
    pour le $ dans la fonction foo
    ce qui m'amène à penser que jquery n'est pas chargé sur la page ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Curieusement si je rajoute une balise script jquery il ne sort plus de message
    d'erreur, mais me retourne un null pour le contenu html du div ???


    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
    // All your GM code must be inside this function
    function letsJQuery() {
     
        // inserer jquery sur l apage
        Doc_JQ = document.createElement('script');
        Doc_JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
        Doc_JQ.type = 'text/javascript';
        Doc_JQ.async = true;
        document.getElementsByTagName('head')[0].appendChild(Doc_JQ);
     
          //Ici la ou les fonctions à inserer 
            function foo(){
            $("#barreOutils").append('<input type="button" value="test" />');
            alert($("#barreOutils").html());
           }
     
     
          //Document.ready sur la page 
          $(function(){
            alert('loaded')
           $("head:eq(0)").append( $('<script />').attr("type","text/javascript").text(foo.toString() +"\n foo()") )
          })
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    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
    Pourquoi tu ne mets pas tout simplement un @require
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // @require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
    dans l'en-tête de ton script ?
    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

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    parce que ça ne fonctionne pas ?

    Ou que je n'arrive pas à la faire fonctionner ?
    tu as un exemple ? un tuto ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [JQuery] calendrier popup en ajax
    Par popogendarme dans le forum jQuery
    Réponses: 2
    Dernier message: 19/06/2007, 16h45
  2. [AJAX] Erreur de connexion (via greasemonkey)
    Par DarkYoup dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/05/2007, 18h35
  3. [JQuery] Encore cache et IE7 mais..
    Par popogendarme dans le forum jQuery
    Réponses: 6
    Dernier message: 29/05/2007, 18h05
  4. [js]problèmes avec jquery
    Par pomgnon dans le forum jQuery
    Réponses: 3
    Dernier message: 30/03/2007, 20h47
  5. [JQUERY] Comment appeler une fonction php avec jquery
    Par popogendarme dans le forum jQuery
    Réponses: 1
    Dernier message: 20/03/2007, 16h07

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