Greasemonkey @require jQuery ne fonctionne pas "Composant non disponible"
J'ai vu l'autre question sur ici sur le chargement de jQuery dans un Greasemonkey. Après avoir essayé cette méthode, avec ce besoin d'instruction à l'intérieur de mon ==UserScript==
tags:
//@require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
Je reçois toujours le message d'erreur suivant dans la console d'erreur de Firefox:
Error: Component is not available
Source File: file:///Users/greg/Library/Application%20Support/
Firefox/Profiles/xo9xhovo.default/gm_scripts/myscript/jquerymin.js
Line: 36
Cela s'arrête mon greasemonkey l'exécution de code. J'ai fait sûr que j'ai inclus la @require
pour jQuery et enregistré mon fichier js avant de l'installer, comme les fichiers requis sont seulement chargés de l'installation.
Code:
//==UserScript==
//@name My Script
//@namespace http://www.google.com
//@description My test script
//@include http://www.google.com
//@require http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
//==/UserScript==
GM_log("Hello");
J'ai Greasemonkey 0.8.20091209.4 installé sur Firefox 3.5.7 sur mon Macbook Pro, Leopard (10.5.8). J'ai effacé le cache de mon navigateur (à l'exception des cookies) et que vous avez désactivé tous les autres plugins, sauf Flashblock 1.5.11.2, Développeur Web 1.1.8 et Adblock Plus 1.1.3.
Mon config.xml
avec mon script Greasemonkey installé:
<UserScriptConfig>
<Script filename="myscript.user.js" name="My Script"
namespace="http://www.google.com" description="My test script" enabled="true"
basedir="myscript">
<Include>http://www.google.com</Include>
<Require filename="jquerymin.js"/>
</Script>
Je peux voir jquerymin.js assis dans le gm_scripts/myscript/
répertoire.
En outre, est-il courant pour cette erreur dans la console lors de l'installation d'un script Greasemonkey?
Error: not well-formed
Source File: file:///Users/Greg/Documents/myscript.user.js
Line: 1, Column: 1
Source Code:
//==UserScript==
source d'informationauteur Greg K
Vous devez vous connecter pour publier un commentaire.
Ok, alors j'ai regardé dans tout ceci un peu plus en profondeur. J'ai utilisé ton script exactement, mais utilisé notre version JQuery, pour la faire ressembler à ceci:
Cela fonctionne bien pour moi, je suppose, le JQuery sur l'api de google est manquant de certaines fonctions. Parce que ce code ci-dessus, fonctionne très bien. Notez également la
/*
à la fin de chaque url, veuillez inclure.Essayez un autre JQuery et modifier l'url et il devrait monde correctement.
J'ai trouvé un non-idéal pour l'utiliser avec jQuery 1.4.1 -- ce qui semble pour le fixer. C'est le nouveau browser sniffing qui semble "pause".
jquery-1.4.1.min.js:
jquery-1.4.1.js
J'ai été achoppement autour d'essayer de traiter cette question avec le GM 0,8 et jquery 1.4.2 et trouvé ceci: http://forum.jquery.com/topic/importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error
Il me semble que la réponse définitive à la question et comment le contourner. La solution a fonctionné pour moi.
De bonnes nouvelles et la mise à jour de toutes les publications:
Le correctif ci-dessus a permis de pré-1.5.2 jQuery versions pour être exécuté dans les scripts Greasemonkey, mais heureusement, le patch n'est plus nécessaire si vous utilisez l'actuel jQuery version 1.5.2.
J'ai vérifié le code et ses remarqué que le eventSupported fonction de code en jQuery
a été mis à jour avec la conséquence que non corrigés jQuery 1.5.2 fonctionne maintenant dans Greasemonkey 0.9.2.
Patch pour jquery-1.4.3.min.js
L' @exiger attribut ne fonctionne pas correctement dans Greasemonkey et jQuery...ce même message d'erreur peut se produire dans FireBug.
Une autre solution consiste à inclure jQuery dans la page via Greasemonkey par la création de la balise script. Voici comment faire.
Pas tout à fait vrai, il semble que jQuery 1.4 essaie de détecter quelque chose à l'aide d'un appel qui ne fonctionne pas dans le greasemonkey environnement. @ne nécessitent normalement fonctionner comme il le devrait.
Donc de revenir à la 1.3.2 faire l'affaire, mais je préfère trouver une solution qui me permet d'utiliser 1.4.
btw, j'utilise cela, légèrement différente:
Voici une version compacte de jQuery 1.4.4 pour Greasemonkey:
http://userscripts.org/scripts/show/92329
Espérons que cela aide,
yah