il doit bien avoir une solution plus simple, plutot que de devoir refaire tout le code de mon add-on.
il doit bien avoir une solution plus simple, plutot que de devoir refaire tout le code de mon add-on.
Bonjour a tous
Je suis toujours bloqu� avec mon problemme de script add-on pour Firefox.
Mon add-on fonctionne nickel il bloque des urls, MAIS le problemem est que ma database est inclue dans le bootstrap.js
Les developpeur de Firefox, mont repondu ceci:
Your add-on prints debugging information to the Console, which is generally not allowed in production add-ons.
2) Please do not store large amounts of JSON/array data in executable files (js). They should be stored in separate .json file, and loaded and parsed via XHR.
Voici mon script bootstrap.js
Peut t'on m'aider a finaliser mon add-on et resoudre ce problemme?
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 = [ //if urls contain any of these elements they will be blocked or redirected, your choice based on code in observer line 17 'url01.com', 'url02.com', 'url03.com' ]; 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(); } }
Merci
ben regarde la coloration syntaxique de ton code
y pas un truc qui te parait bizare ?
A+JYT
Bonjour,
visiblement tu as vu autre chose puisque tu as corrig�, le soucis et de savoir si maintenant cela fonctionne ?
Les joies du CSS | R�ponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
j'ai juste modifi� une petite virgule en trop
mais comme je l'ai expliqu� la team Mozilla voudrait que mon fichier soit externe dans un json a la place du bootstrap.js ou j'y ai mis ma data-base., apr�s ce qu-ils me demandent moi je sais pas comment le r�aliser :s c'est pour cela que je suis ici.
Doublon de http://www.developpez.net/forums/d14...-bootstrap-js/
Ton code ne semble pas avoir �volu� malgr� les diff�rentes approches propos�es ..?!
Peut-�tre n'es tu pas encore pr�t � �crire un add-on qui va �tre utilis� en confiance par des utilisateurs ?
Charger un fichier local avec une XHR comment faire ca???
Il est inutile de cr�er un troisi�me topic pour un probl�me inchang�... Toutes les pistes t'ont �t� donn�, tu as re�u une trentaine de messages pour t'aider � avancer. Mais sans une bonne connaissance de JavaScript des API abord�es, ton projet d'add-on n'a que tr�s peu de chances d'aboutir.
Et bien mon add-on fonctionne depuis 2 ans, mais on me demande de mettre ma data-base d�URL a l�ext�rieur du fichier bootstrap.js et �a je n'arrive pas a le concr�tiser.
Cela fait peut-�tre deux ans mais tu ne sembles toujours pas trouver le temps pour approfondir les pistes que l'on te donne. Lysandro et beekeep t'ont donn� les deux meilleures solutions il y a plus d'un mois: readTextFromFile et AJAX. Il ne te reste plus qu'� en impl�menter une, la premi�re option en suivant la doc de Mozilla et la seconde en consultant un tuto parmi la centaine d'existants sur le net.
Et bien j'en suis toujours la si je reprends
mais LA mon add-on ne fonctionne plus, il ne bloque plus les urls qui sont dans le fichier texte
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(); } }
Tu as tout � partir de Mozilla / Add-ons / Bootstrapped extensions.
Sinon, as tu des erreurs ? Si oui, lesquelles ?
La m�thode split s'�crit, en principe, avec un s en minuscule, es tu s�r qu'il existe une m�thode Split avec un S en majuscule ?
Que contient, apr�s chargement, ta variable urls_block ?
A quel moment du cycle de vie de ton add-on ton code de chargement de tes urls s'ex�cute-t-il ? Est-ce le bon moment ?
J'ai corrig� le S oui c'est un s minuscule, mai mon module ne fonctionne toujours pas, il ne bloque plus les urls qui sont contenues dans le fichier 'url.txt'
a l'interieur du fichier txt j'ai des urls comme ceci:
'url01.com',
'url02.com',
'url03.com',
etc...
donc dans mon code j'ai au debut:
je nsais pas sir le split est correct mais je pense que oui
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 var urls_block = null; if(!urls_block) { urls_block = readTextFromFile("url.txt").split(',');
Mon add-on s'execute au moment ou l'utilisateur tape un url quelquonque, si il correspond aceux dans la database il le bloque et met juste un message d'erreur 'ILLEGAL_&_DANGEROUS_CONTENT_BLOCKED'
Concernant l'application de la m�thode split(), regarde quand m�me qu'il ne traine pas de retour chariot en fin de ligne.
Les joies du CSS | R�ponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
Et les apostrophes aussi sont en trop dans le fichier texte.
Le mieux serait de laisser des traces de debug, histoire d'aller un peu plus loin que "�a marche pas" comme constat
Il est aussi n�cessaire d'utiliser la console du navigateur (CTRL + MAJ + J).
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 JavaScript � JavaScript et le DOM par la pratique � PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum
Partager