J'ai le code suivant dans test.js em> qui est exécuté juste avant corpot>: J'ai le code suivant dans test .User.js em>: p> "plaque de cuisson" est alerté afin que je connaisse la page JavaScript fonctionne et Erreur: RéférenceError: Greasy n'est pas défini Fichier source: /Test.js P>
blockQuote> Comment de la page Web Dois-je accéder à la variable définie par Greasemonkey et sur la vice versa? p> p> document.title code> obtient des modifications Donc, je sais que le script JavaScript fonctionne. Cependant, sur la page Web, je reçois l'erreur: p>
3 Réponses :
Votre variable le faire de cette façon: p> aussi, pourquoi placez-vous tout votre code dans une fonction anonyme, puis exécutant-le ? p> p> graisse code> est définie dans la portée de la fonction anonyme. Vous ne pouvez pas accéder au
gras code> même dans votre utilisateur, à moins que cela ne fait partie de votre fonction. Exemple:
Je viens d'utiliser un script de modèle Greasemonkey et il y avait l'exemple de code dans la fonction anonyme. J'ai supposé que c'était requis pour les scripts des greasemonkey. J'ai déplacé la déclaration de Var en dehors de la fonction et je ne peux toujours pas alerter la valeur variable du script test.js à la page.
Pourrait-il être mon test de test.js est exécuté avant que Greasemonkey? Si oui, comment puis-je le retarder?
Les scripts de Greasemonkey fonctionnent dans une portée distincte et peuvent également utiliser dans un bac à sable, en fonction du @Grant code> Paramètres . P> LI>
En outre, le code de question isole Enfin, par défaut, test.js em> stry> sera déclencher avant que le script Greasemonkey ne voit donc aucune variables définies, de toute façon. Utilisez pas de sable de sable: strong> p> gras code> dans une portée de la fonction (a dit Glacoscc). P> LI>
@ Run-au document-Démarrage CODE>
pour adresser cela. p> li>
Donc, compte tenu de ce corpot> code>: p>
avec sandbox, aucune portée de la fonction, non audidewow code>: strong>
==> In GM script, local global: undefined
In GM script, script global: greasy
On target page, local global: stovetop
On target page, script global: greasy
In GM script, local global, after ready: stovetop
btw wiki.greasespot.net/unsafewindow dis son danger d'utiliser UNSAREWINDOW, quelle serait une alternative plus sûre dans ce cas?
L'alternative "plus sûre" serait d'utiliser l'utilisation de la méthode @grant non code> mais remplacer
inesfewindow code> avec
fenêtre code> (bien qu'ils soient identiques lorsque
@Grant Aucun code> est en vigueur), ou B> pour utiliser la méthode script i>. ... cependant, le risque d'utiliser
non audidewow code> est grandement surélevé - sans que les exploits réels rapportés. Tant que vous n'êtes pas sur un site ciblant activement les scripts GM, il ne devrait y avoir aucun risque.
Si vous allez de cette façon, cela ne fonctionnera que dans Firefox sous forme de brouses de sandbox chromé.