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 :

Add-on Firefox bootstrap.js


Sujet :

JavaScript

  1. #21
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Est-ce que tu as mis les URLs dans un fichier à part et utilisé le code indiqué dans mon premier lien pour les charger ?

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    et bien je my perds vraiment, par rapport a mon code je ne sais pas ce que je dois modifier, poru que cela marche, et si je sauve mes urls dans un fichier externe en txt ou js.
    cets pour cela en fait que je demande si c'est possible d'avoir le code de mon add-on deja modifié afin que cela fonctionne comme je l'ai dit je ne suis malheureusement ps un genie comme certains ici avec javascript

  3. #23
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Je ne suis pas sur que quelqu'un veuille le faire à ta place.

    Tu auras plus d'aide en essayant de comprendre et de demander de l'aide sur un problème en particulier.

    Tu peux utiliser un fichier texte.
    Ensuite il faut lire le fichier et remplir un tableau de chaine de caractères avec les URLs.

  4. #24
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    lire le fichier texte et et remplir un tableau de chaine de caractères avec les URLs??
    et ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urls_block =JSON.parse(readTextFromFile("taliste.json"));
    si je remplace ("taliste.json")) par ("blocklist.json")) ? et que dans ce fichier json je mets tous mes urls?

  5. #25
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Oui c'est un bon début.

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    donc j'ai procédé comem je l'avais dit precedament mais evidament ca ne fonctionne pas.
    Dans mon fichier json j'ai mis tous mes urls, mais que dosi je mettre en debut et fin de fichier pour que ca marche???
    mettre juste les urls ca ne fonctionne pas!!

  7. #27
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Si tu choisis le format texte tu peux mettre une URL par ligne.
    Avec un format JSON il faut mettre un objet avec un tableau contenant les URLs au format JSON.

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    Donc si ma liste d'urls est un fichier texte au lieu d'un fichier json ca devrait aller??
    si dans mon bootstratp.js je mets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urls_block =JSON.parse(readTextFromFile("taliste.txt"));

  9. #29
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Pas besoin de JSON.parse si ce n'est pas un fichier JSON.

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    et donc j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urls_block =JSON.parse(readTextFromFile("taliste.txt"));
    je le remplace par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urls_block =???(readTextFromFile("taliste.txt"));
    quoi donc?

  11. #31
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    La fonction readTextFromFile renvoi tout le texte du fichier, il faut ensuite utiliser un Split pour diviser la chaine en plusieurs en utilisant le séparateur saut de ligne (\n).


  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    Merci encore poru ton aide
    donc ca je fais quoi exactement?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urls_block =???(readTextFromFile("taliste.txt"));
    et dans mon fichier liste.txt j'ai que des urls separés par des ;

    que faut t'il que je mette avant les urls et en fin d'urls? rien?

  13. #33
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Si elles sont séparées par des points virgules:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urls_block = readTextFromFile("taliste.txt").Split(';');

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    Rebonjour donc atuellement j'ai ceci
    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
    44
    45
    const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
    Cu.import('resource://gre/modules/Services.jsm');
     
    var urls_block = readTextFromFile("url.txt").Split(',');
     
    var observers = {
        'http-on-modify-request': {
            observe: function (aSubject, aTopic, aData) {
                console.info('http-on-modify-request: aSubject = ' + aSubject + ' | aTopic = ' + aTopic + ' | aData = ' + aData);
                var httpChannel = aSubject.QueryInterface(Ci.nsIHttpChannel);
                var requestUrl = httpChannel.URI.spec;
                for (var i=0; i<urls_block.length; i++) {
                 if (requestUrl.indexOf(urls_block[i]) > -1) {
                  //httpChannel.cancel(Cr.NS_BINDING_ABORTED); //this aborts the load
                  httpChannel.redirectTo(Services.io.newURI('data:text,ILLEGAL & DANGEROUS CONTENT BLOCKED"', null, null)); //can redirect with this line, if dont want to redirect and just block, then uncomment this line and comment out line above (line 17)
                  break;
    }
                }
            },
            reg: function () {
                Services.obs.addObserver(observers['http-on-modify-request'], 'http-on-modify-request', false);
            },
            unreg: function () {
                Services.obs.removeObserver(observers['http-on-modify-request'], 'http-on-modify-request');
            }
        }
    };
     
    function install() {}
     
    function uninstall() {}
     
    function startup() {
     for (var o in observers) {
     	observers[o].reg();
     }
    }
     
    function shutdown(aData, aReason) {
     if (aReason == APP_SHUTDOWN) return;
     
     for (var o in observers) {
     	observers[o].unreg();
     }
    }
    dans mon fichier externe url.txt
    mes urls sont comem ceci:
    'url01',
    'url03',
    etc...
    mais mon addon ne bloque plus ces urls

  15. #35
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Tu peux déboguer le code en utilisant la "boite à outils du navigateur" disponible via le menu outils, développent web.
    (il y a un champ pour rechercher un script par son nom)

    De cette façon tu peux vérifier que le chargement se passe comme il faut (en modifiant ce qui ne va pas).

    Le chargement des URLs doit être fait uniquement au premier test et non au chargement du module pour ne pas ralentir Firefox.

    Initialiser la variable à null:

    puis au début de la fonction observe charger les URLs si besoin:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!urls_block)
    {
      urls_block = readTextFromFile("url.txt").Split(',');
    }

  16. #36
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    je lance le module ardoise javascript quand j'analyse mon script ca me dit en fin de fichier

    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
    44
    45
    46
    47
    48
    49
    const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
    Cu.import('resource://gre/modules/Services.jsm');
     
    var urls_block = null;
     
    if(!urls_block)
    {
      urls_block = readTextFromFile("url.txt").Split(',');
    }
    var observers = {
        'http-on-modify-request': {
            observe: function (aSubject, aTopic, aData) {
                console.info('http-on-modify-request: aSubject = ' + aSubject + ' | aTopic = ' + aTopic + ' | aData = ' + aData);
                var httpChannel = aSubject.QueryInterface(Ci.nsIHttpChannel);
                var requestUrl = httpChannel.URI.spec;
                for (var i=0; i<urls_block.length; i++) {
                 if (requestUrl.indexOf(urls_block[i]) > -1) {
                  //httpChannel.cancel(Cr.NS_BINDING_ABORTED); //this aborts the load
                  httpChannel.redirectTo(Services.io.newURI('data:text,ILLEGAL & DANGEROUS CONTENT BLOCKED"', null, null)); //can redirect with this line, if dont want to redirect and just block, then uncomment this line and comment out line above (line 17)
                  break;
    }
                }
            },
            reg: function () {
                Services.obs.addObserver(observers['http-on-modify-request'], 'http-on-modify-request', false);
            },
            unreg: function () {
                Services.obs.removeObserver(observers['http-on-modify-request'], 'http-on-modify-request');
            }
        }
    };
     
    function install() {}
     
    function uninstall() {}
     
    function startup() {
     for (var o in observers) {
     	observers[o].reg();
     }
    }
     
    function shutdown(aData, aReason) {
     if (aReason == APP_SHUTDOWN) return;
     
     for (var o in observers) {
     	observers[o].unreg();
     }
    }

    /*
    Exception: redeclaration of const Cc
    @Scratchpad/1:1:17
    WCA_evalWithDebugger@resource://gre/...lkit/loader.js -> resource://gre/modules/devtools/server/actors/webconsole.js:1122:16
    WCA_onEvaluateJS@resource://gre/modu...lkit/loader.js -> resource://gre/modules/devtools/server/actors/webconsole.js:750:20
    DSC_onPacket@resource://gre/modules/...lkit/loader.js -> resource://gre/modules/devtools/server/main.js:1233:15
    LocalDebuggerTransport.prototype.send/<@resource://gre/modules/devtools/dbg-client.jsm -> resource://gre/modules/devtools/transport/transport.js:545:11
    makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:83:14
    makeInfallible/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/devtools/DevToolsUtils.js:83:14

  17. #37
    Membre averti
    Profil pro
    à la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : à la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Points : 362
    Points
    362
    Par défaut
    Histoire de faire avancer le schmilblick, j'ai testé :

    readTextFromFile - Je pense qu'il faut copier le source de la fonction dans le code, elle n'était pas définie dans mon environnement. Ensuite, je n'ai jamais pu trouver comment intégrer 'require' qui semble aussi non définie. Je pense, mais je ne l'ai pas validé, qu'il faut installer le sdk pour que ça fonctionne et générer le add-on à partir du sdk. En passant, '.split' s'écrit avec un 's' minuscule.

    Sinon il y a une alternative https://developer.mozilla.org/en-US/...XMLHttpRequest

    edit:10/01/2015-1050 - retrait code inutile

  18. #38
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Citation Envoyé par imothep85 Voir le message
    je lance le module ardoise javascript quand j'analyse mon script ca me dit en fin de fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
    Exception: redeclaration of const Cc
    Il faut donc changer le nom des constantes que tu utilises. (Cc, Ci, Cu, Cr)

    Essayes de lire les messages d'erreur, de les comprendre et d'essayer de corriger les erreurs toi-mêmes.

  19. #39
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Citation Envoyé par lysandro Voir le message
    Histoire de faire avancer le schmilblick
    Franchement je ne pense pas que ça fasse trop avancer les choses en changeant complètement le code. (Charger un fichier local avec une XHR ??)

    Il faudrait tester dans le bon environnement (add-on via jetpack).

  20. #40
    Membre averti
    Profil pro
    à la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : à la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Points : 362
    Points
    362
    Par défaut
    C'est pas faux

    edit:10/01/2015-10:50

Discussions similaires

  1. Javascript et add-on Firefox
    Par AthackX dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 20/07/2010, 14h27
  2. Besoin de conseils pour un add-on firefox
    Par splash44 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 21/10/2009, 20h05
  3. Tutoriel pour la création d'add-on firefox.
    Par Armagnak dans le forum Firefox
    Réponses: 3
    Dernier message: 24/07/2009, 11h53
  4. Scan materiel avec un plugin/add-on Firefox
    Par _Alexou dans le forum Firefox
    Réponses: 0
    Dernier message: 11/06/2009, 15h13
  5. Comment piloter un Add-On FireFox, à l'aide de javascript
    Par BozKiller dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/10/2007, 14h24

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