Wie kann ich jQuery in Greasemonkey verwenden?

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 überhaupt nicht in Greasemonkey. Gibt es eine andere Möglichkeit, jQuery in Greasemonkey zu verwenden?

Für alle Leute, die das gleiche Problem haben, müssen Sie die Datei auf den GreaseSpot hochladen und dann von dort installieren.

Die Create New Script Option würde nicht funktionieren!

Vielleicht haben Sie nicht eine neuere Version von Greasemonkey. Es war Version 0.8, die @require hinzugefügt.

 // @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js 

Wenn Sie nicht über 0.8 verfügen, verwenden Sie die Technik, die Joan Piedra beschreibt, um manuell ein script zur Seite hinzuzufügen .

Zwischen Version 0.8 und 0.9 wird @require nur bei der @require des Skripts verarbeitet. Wenn Sie die Liste der erforderlichen Skripts ändern, müssen Sie das Skript deinstallieren und neu installieren. Greasemonkey lädt das benötigte Skript einmalig bei der Installation herunter und verwendet danach eine zwischengespeicherte Kopie.

Ab 0.9 hat sich das Greasemonkey-Verhalten geändert (um ein tangential zusammenhängendes Problem anzugehen), so dass es nun nach jedem Editieren die benötigten Skripte lädt; Neuinstallation des Skripts ist nicht mehr erforderlich.

Wenn Sie jQuery auf einer Website verwenden möchten, auf der es bereits enthalten ist, ist dies der richtige Weg (inspiriert von BrunoLM):

 var $ = unsafeWindow.jQuery; 

Ich weiß, dass dies nicht die ursprüngliche Absicht der Frage war, aber es wird zunehmend ein allgemeiner Fall und Sie haben diesen Fall nicht ausdrücklich ausgeschlossen. 😉

Es ist absolut nichts falsch daran, die gesamte jQuery in dein Greasemonkey-Skript aufzunehmen. Nehmen Sie einfach die Quelle und legen Sie sie oben in Ihrem Benutzerskript ab. Sie müssen kein Skript-Tag erstellen, da Sie bereits JavaScript ausführen!

Der Benutzer lädt das Skript nur einmal herunter, so dass die Größe des Skripts keine große Rolle spielt. Wenn Sie möchten, dass Ihr Greasemonkey-Skript auch in nicht-GM-Umgebungen (z. B. Operas GM-esque Benutzerskripten oder Greasekit auf Safari) funktioniert, hilft es nicht, GM-einzigartige Konstrukte wie @require zu verwenden.

Robs Lösung ist die richtige – verwenden Sie @require mit der jQuery-Bibliothek und stellen Sie sicher, dass Sie das Skript neu installieren, damit die statement verarbeitet wird.

Eine Sache, die ich denke, ist es wert hinzuzufügen, dass Sie jQuery normal verwenden können, sobald Sie es in Ihr Skript aufgenommen haben, außer für AJAX-Methoden . Standardmäßig sucht jQuery nach XMLHttpRequest, das im Greasemonkey-Kontext nicht existiert. Ich habe über eine Problemumgehung geschrieben, in der Sie einen Wrapper für GM_xmlhttpRequest (die Greasemonkey-Version von XHR) erstellen und jQuery’s ajaxSetup() , um Ihre ajaxSetup() Version als Standard anzugeben. Sobald Sie dies getan haben, können Sie $.get und $.post wie gewohnt verwenden.

Möglicherweise haben Sie auch Probleme mit $.getJSON jQuery, da JSONP mit -Tags $.getJSON . Dies führt zu Fehlern, da jQuery die Callback-function im Bereich des Greasemonkey-Fensters definiert und die geladenen Skripte im Bereich des Hauptfensters nach dem Callback suchen. Am besten verwenden $.get stattdessen $.get und parsen das Ergebnis mit JSON.parse() .

Update : Wie der folgende Kommentar sagt, ist diese Antwort veraltet.

Wie alle anderen gesagt haben, wird @require nur ausgeführt, wenn das Skript installiert wurde. Allerdings sollten Sie auch beachten, dass jQuery 1.4. * Derzeit nicht mit dem greasemonkey funktioniert. Sie können hier für Details sehen: 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 die Dinge ändern.

Wenn Sie Chrome verwenden, müssen Sie sich für eine Alternative entscheiden, da @require nicht unterstützt.

Quelle: Das Chromium-Projekt – Benutzerskripte

Weitere Details und Alternativen zu Wie verwende ich jQuery in Greasemonkey-Skripten in Google Chrome?

Sie können ein neues Skript mit dem New User Script in Greasemonkey erstellen, aber Sie müssen die Datei config.xml im Ordner gm_scripts bearbeiten.

Ihre config.xml- Datei sollte eine ähnliche Syntax wie diese haben:

  

Beachten Sie das -Tag.

In Ihrem Skript können Sie die direkte jQuery-Syntax verwenden. Stellen Sie sicher, dass Sie das Request-Tag in der Greasemonkey-Kopfzeile haben. Hier ist ein Hello World Beispiel:

 // ==UserScript== // @name Test jQuery // @namespace http://www.example.com/jQueryPlay/ // @description Just a test // @include http://* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js // ==/UserScript== $(document).ready(function() { alert("Hello world!"); }); 

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 auch, dass Sie die Datei jquery.js in Ihren Skriptverzeichnisordner kopieren müssen, damit dies funktioniert. Ich habe das getestet und es funktioniert nur, wenn Sie die Datei dort manuell kopieren.

Glückliches jQuerying!

das @require-Meta funktioniert nicht, wenn Sie Ereignisse auf einer Webseite mit jQuery lösen möchten, Sie müssen eine jQuery-Bibliothek verwenden, die auf der Webseite enthalten ist, und dann in Greasemonkey mit var $ = unsafeWindow.jQuery; Wie entbinde ich jquery Event-Handler in greasemonkey?

Möglicherweise erhalten Sie die Component unavailable wenn Sie das jQuery-Skript direkt importieren.

Vielleicht hat @Conley darüber gesprochen …

Sie können verwenden

 @require http://userscripts.org/scripts/source/85365.user.js 

Das ist eine modifizierte Version, um mit Greasemonkey zu arbeiten und dann das jQuery-Objekt zu bekommen

 var $ = unsafeWindow.jQuery; $("div").css("display", "none"); 

@require wird NICHT nur bei der ersten Installation des Skripts verarbeitet! Auf meinen Beobachtungen wird es zur ersten Ausführungszeit verarbeitet! Sie können also ein Skript über den Greasemonkey-Befehl installieren, um ein brandneues Skript zu erstellen. Sie müssen nur darauf achten, dass keine Seite neu geladen wird, bevor Sie den @require Teil hinzufügen. (und speichern Sie das neue Skript …)