10
votes

Greasemonkey @require JQuery ne fonctionne pas "Composant non disponible"

J'ai vu L'autre question ici sur le chargement jQuery en greasemonkey. Après avoir essayé cette méthode, avec cette énoncé nécessiteux dans mon == userscript == code> balises: xxx pré>

I Obtenez toujours le message d'erreur suivant dans la console d'erreur de Firefox: P>

Error: not well-formed
Source File: file:///Users/Greg/Documents/myscript.user.js
Line: 1, Column: 1
Source Code:
   // ==UserScript==


2 commentaires

J'ai essayé votre script, ça a fonctionné très bien. Pas de problème ici, en utilisant la version 0.8.20091129.3. Êtes-vous sûr de correctement désinstallé correctement le script précédent avant d'installer le nouveau. J'ai aussi eu des problèmes avec la mise en cache à Firefox.


Cela semble être un bug avec JQuery 1.4, vient de publier il y a quelques jours. Au moins, j'ai le même problème avec JQuery 1.4 mais pas avec JQuery 1.3.


8 Réponses :


0
votes

L'attribut @require ne fonctionne pas correctement en Greasemonkey et JQuery ... cette même erreur peut également se produire dans Firebug.

Une alternative consiste à inclure JQuery dans la page via Greasemonkey en créant la balise de script. Voici comment faire ce .


2 commentaires

Merci, j'ai vu ce lien - j'aimerais savoir pourquoi @require est une méthode documentée mais ne fonctionne pas pour moi. keyvan.net/2008/10/greasemonkey-jquery


Nous utilisons Greasemonkey avec l'attribut @require pour JQuery et cela fonctionne très bien pour nous.



6
votes

OK, alors j'ai regardé cela un peu plus plus profondément. J'ai utilisé votre script exactement, mais j'ai utilisé notre version de jQuery, ce qui l'ait ressemblant à ceci:

// ==UserScript==
// @name           My Script
// @namespace      http://www.google.com
// @description    My test script
// @include        http://www.google.se/*
// @include        http://www.dn.se/*
// @require        http://myserver/jquery-1.3.2.js
// ==/UserScript==

GM_log("Hello");


1 commentaires

Merci, j'ai changé d'URL requis pour jqueryjs.googlecode.com/files/ jquery-1.3.2.min.js et ça marche!



0
votes

Pas entièrement vrai, il semble que JQuery 1.4 tente de détecter quelque chose en utilisant un appel qui ne fonctionne tout simplement pas en milieu de greffon. @require fonctionne normalement comme il se doit.

alors revenir à 1.3.2 fait le tour, mais je préfère trouver une solution qui me permet d'utiliser 1.4.

BTW, je l'utilise, Légèrement différent: xxx


0 commentaires

7
votes

J'ai trouvé un moyen non idéal de l'utiliser avec JQuery 1.4.1 - Cela semble le réparer. C'est le Nouveau navigateur renifler qui semble "casser" cela.

jquery-1.4.1.min.js: xxx

jquery-1.4.1.js xxx


0 commentaires

6
votes

Je trottonnais d'essayer de faire face à ce problème avec GM 0.8 et JQuery 1.4.2 et trouvé ceci: http://forum.jquerer.com/topic/importing-jquery-1-4-1-into-gèreemonkey-scripts-Generates- une erreur

Cela me semble que la réponse définitive à la question et comment travailler autour de lui. La solution de contournement a travaillé pour moi.


2 commentaires

Merci de relier cela, allant de l'avant, c'est la réponse définitive (ICHAU a également mentionné le même correctif mais sans lien). À l'époque, j'ai posé cette question à cette question, 1,4 n'était que simplement et j'utilisais 1.3.2 pour laquelle la réponse Anders répondait à ma question.


Merci pour le lien, j'ai édité la mienne pour inclure le lien juste au cas où. N'a pas eu de lien à l'époque et copié des commentaires de mon script sur :)



2
votes

patch pour jQuery-1.4.3.3.min.js

[Old] Ligne 41 U.Createeelement ("div"); s = "on" + s; var B = s en v;
[nouvelle] ligne 41 U.Createeelement ("div"); s = "on" + s; var B = vrai;


0 commentaires

0
votes

Voici une version minifiée de JQuery 1.4.4 pour Greasemonkey:

http://userscripts.org/scripts/show/92329

J'espère que cela aide, yah


0 commentaires

3
votes

Bonnes nouvelles et mettre à jour toutes les publications:

Le correctif ci-dessus autorisé versions pré-1.5.2 JQuery à exécuter dans des scripts Greasemonkey, mais heureusement, le patch n'est plus nécessaire si vous utilisez la version actuelle JQuery 1.5.2. p>

J'ai vérifié son code et j'ai remarqué que le code de fonction évoqueur des événements dans JQuery P>

var eventSupported = function(eventName) { ... }


0 commentaires