Ich habe versucht, diese Zeile zu setzen, aber es funktioniert nicht:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
jQuery funktioniert in Greasemonkey überhaupt nicht. Gibt es eine andere Möglichkeit, jQuery in Greasemonkey zu verwenden?
- -
Für alle Personen, die das gleiche Problem haben, müssen Sie die Datei auf greasespot hochladen und von dort aus installieren.
Die Option Neues Skript erstellen würde nicht funktionieren!
jquery
greasemonkey
Keira Fast
quelle
quelle
$(document).ready(function() {...});
in Ihrem Code zu verwenden@requires
zu aktualisieren, besteht darin, am Ende der@require
Anweisung einen Hash oder einen Querystring hinzuzufügen und ihn zu ändern, wenn eine Aktualisierung erforderlich ist. Ähnlich wie Sie ein Favicon "zwischenspeichern" würden.// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js?v=changeme
Antworten:
Vielleicht haben Sie nicht genügend aktuelle Version von Greasemonkey. Es war Version 0.8, die hinzugefügt wurde
@require
.Wenn Sie nicht über 0,8 verfügen, verwenden Sie die von Joan Piedra beschriebene Technik, um der Seite manuell ein
script
Element hinzuzufügen .Zwischen Version 0.8 und 0.9
@require
wird nur verarbeitet, wenn das Skript zum ersten Mal installiert wird. Wenn Sie die Liste der erforderlichen Skripte ändern, müssen Sie Ihr Skript deinstallieren und neu installieren. Greasemonkey lädt das erforderliche Skript einmal bei der Installation herunter und verwendet anschließend eine zwischengespeicherte Kopie.Ab 0.9 hat sich das Verhalten von Greasemonkey geändert (um ein tangentiales Problem zu beheben ), sodass jetzt nach jeder Bearbeitung die erforderlichen Skripte geladen werden. Eine Neuinstallation des Skripts ist nicht mehr erforderlich.
quelle
@require
Anweisungen hinzufügen möchten , müssen Sie das Skript deinstallieren und neu installieren, damit es wirksam wird.Wenn Sie jQuery auf einer Site verwenden möchten, auf der es bereits enthalten ist, ist dies der richtige Weg (inspiriert von BrunoLM):
Ich weiß, dass dies nicht die ursprüngliche Absicht der Frage war, aber es wird zunehmend zu einem häufigen Fall, und Sie haben diesen Fall nicht ausdrücklich ausgeschlossen. ;)
quelle
if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; }
In Chrome ist eine Site Jquery bereits verfügbar.alert($('.submit_entry').length);
ist sowohl ein Fehler als auch das gleichzeitige Senden der entsprechenden Warnung.Es ist absolut nichts Falsches daran, die gesamte jQuery in Ihr Greasemonkey-Skript aufzunehmen. Nehmen Sie einfach die Quelle und platzieren Sie sie oben in Ihrem Benutzerskript. Sie müssen kein Skript-Tag erstellen, da Sie bereits JavaScript ausführen!
Der Benutzer lädt das Skript sowieso nur einmal herunter, sodass die Größe des Skripts kein großes Problem darstellt. Wenn Sie jemals möchten, dass Ihr Greasemonkey-Skript in Nicht-GM-Umgebungen funktioniert (z. B. in den GM-ähnlichen Benutzerskripten von Opera oder in Greasekit auf Safari), ist es außerdem hilfreich, keine GM-eindeutigen Konstrukte wie @require zu verwenden.
quelle
Robs Lösung ist die richtige - verwenden Sie sie
@require
mit der jQuery-Bibliothek und installieren Sie Ihr Skript neu, damit die Direktive verarbeitet wird.Eine Sache, die ich für erwähnenswert halte, ist, dass Sie jQuery normal verwenden können, sobald Sie es in Ihr Skript aufgenommen haben, mit Ausnahme von AJAX-Methoden . Standardmäßig sucht jQuery nach XMLHttpRequest, das im Greasemonkey-Kontext nicht vorhanden ist. Ich habe über eine Problemumgehung geschrieben, bei der Sie einen Wrapper für GM_xmlhttpRequest (die Greasemonkey-Version von XHR) erstellen und mit jQuery's
ajaxSetup()
Ihre umschlossene Version als Standard angeben. Sobald Sie dies tun, können Sie$.get
und$.post
wie gewohnt verwenden.Möglicherweise haben Sie auch Probleme mit jQuery's,
$.getJSON
da JSONP mithilfe von<script>
Tags geladen wird . Dies führt zu Fehlern, da jQuery die Rückruffunktion im Bereich des Greasemonkey-Fensters definiert und die geladenen Skripte im Bereich des Hauptfensters nach dem Rückruf suchen. Am besten verwenden Sie$.get
stattdessen und analysieren das Ergebnis mitJSON.parse()
.quelle
Sie können ein neues Skript mit dem Skript für neue Benutzer in Greasemonkey erstellen, müssen jedoch die Datei config.xml im Ordner gm_scripts bearbeiten.
Ihre Datei config.xml sollte eine ähnliche Syntax haben:
Beachten Sie das
<Require>
Tag.In Ihrem Skript können Sie die direkte jQuery-Syntax verwenden. Stellen Sie sicher, dass Sie das require-Tag im Greasemonkey-Header haben. Hier ist ein Hello World-Beispiel:
Denken Sie daran, dass Sie nach dem Ändern der Datei config.xml Ihren Browser neu starten müssen, damit Greasemonkey die Einstellungen erneut lädt .
Beachten Sie außerdem, dass Sie die Datei jquery.js in Ihren Skriptverzeichnisordner kopieren müssen, damit dies funktioniert. Ich habe dies getestet und es funktioniert nur, wenn Sie die Datei dort tatsächlich manuell kopieren.
Viel Spaß beim jQuerying!
quelle
Update : Wie der Kommentar unten sagt, ist diese Antwort veraltet.
Wie alle anderen gesagt haben, wird @require nur ausgeführt, wenn das Skript installiert wurde. Beachten Sie jedoch auch, dass jQuery 1.4. * Derzeit nicht mit greasemonkey funktioniert. Weitere Informationen finden Sie hier: http://forum.jquery.com/topic/importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error
Sie müssen jQuery 1.3.2 verwenden, bis sich etwas ändert.
quelle
Wenn Sie Chrom verwenden, müssen Sie sich für eine Alternative entscheiden, da Chromium dies nicht unterstützt
@require
.Quelle: Das Chromium-Projekt - Benutzerskripte
Weitere Details und Alternativen zu Wie kann ich jQuery in Greasemonkey-Skripten in Google Chrome verwenden?
quelle
Das @ require-Meta funktioniert nicht, wenn Sie Ereignisse auf einer Webseite mit jQuery aufheben möchten. Sie müssen eine auf der Webseite enthaltene jQuery-Bibliothek verwenden und diese dann in Greasemonkey
var $ = unsafeWindow.jQuery;
abrufen. Wie kann ich die Aufhebung von jquery-Ereignishandlern in greasemonkey aufheben?quelle
Sie erhalten möglicherweise,
Component unavailable
wenn Sie das jQuery-Skript direkt importieren.Vielleicht ist es das, worüber @Conley sprach ...
Sie können verwenden
Dies ist eine modifizierte Version, um mit Greasemonkey zu arbeiten und dann das jQuery-Objekt abzurufen
quelle
@require
wird NICHT nur bei der Erstinstallation des Skripts verarbeitet! Nach meinen Beobachtungen wird es bei der ersten Ausführungszeit bearbeitet! Sie können also ein Skript über den Befehl von Greasemonkey installieren, um ein brandneues Skript zu erstellen. Das einzige, worauf Sie achten müssen, ist, dass kein erneutes Laden der Seite ausgelöst wird, bevor Sie das@require
Teil hinzufügen . (und speichern Sie das neue Skript ...)quelle