Je voudrais utiliser la fonction Web Worker introduite dans Firefox 3.5 pour améliorer un script Greasemonkey sur lequel je travaille.Est-il possible d'utiliser des travailleurs dans un script Greasemonkey?
Est-ce encore possible?
J'ai fait quelques expérimentations, mais je ne peux pas surmonter le problème du chargement d'un script de travail à partir d'un domaine arbitraire.
Par exemple, cela ne fonctionne pas:
var myWorker = new Worker("http://dl.getdropbox.com/u/93604/js/worker.js");
Ce code génère un message d'erreur dans ma console Firebug:
Impossible de charger le script: http://dl.getdropbox.com/u/93604/js/worker.js (nsresult = 0x805303f4)
Apparemment, il y a une limitation qui ne vous permet pas de démarrer aw orker à partir d'une URL qui n'est pas relative à l'URL de base du script appelant. Vous pouvez charger un script de travail à une URL relative comme celui-ci très bien:
var myWorker = new Worker("worker.js");
Mais il n'y a aucun moyen pour moi d'obtenir le script de travail sur le système de fichiers de l'utilisateur afin qu'il puisse être à un chemin relatif au script d'appel .
Suis-je foutu ici? Devrais-je renoncer à essayer d'utiliser les travailleurs dans mon script Greasemonkey?
Le contexte de Greasemonkey fait unique, à mon avis. Greasemonkey est connu pour activer des scénarios qui ne sont généralement pas possibles, comme les requêtes Ajax inter-domaines.Peut-être que d'autres utilisateurs de Greasemonkey sont au courant des trucs qui pourraient m'aider. – mattblodgett
Il y a quelques hacks que les gens ont écrit pour le code Gears WorkerPool (Consultez l'indicateur d'origine croisée: http://code.google.com/apis/gears/api_workerpool.html#cross_origin). Greasemonkey fonctionne également dans le domaine d'une extension dans Firefox, de sorte que le guide sur les travaux à l'intérieur des extensions sur l'archive MDC pourrait aider. Peut être capable de charger un JS via le chrome :: url. –
La seule façon dont greasemonkey peut le rendre unique est si greasemonkey ajoute du code pour qu'il soit unique. Le script greasemonkey va seulement pouvoir charger des scripts de la même origine, c'est pourquoi il échoue. – sdwilsh