Manuelles Hinzufügen eines Userscript zu Google Chrome


160

Anstatt Benutzerskripte zu "installieren", habe ich im Web viele Tutorials gefunden, um sie manuell hinzuzufügen. Alle sagten mir, ich solle die gleichen Schritte machen:

  • Erstellen Sie das Verzeichnis C: \ Benutzer \ Blabla \ AppData \ Local \ Google \ Chrome \ Benutzerdaten \ Standard \ Benutzerskripte
  • Platzieren Sie dort eine .js-Datei, die das User-Script enthält
  • Starten Sie Chrome mit dem Parameter --enable-user-scripts

Ich habe es getan - aber mein Demo-Skript macht nichts:

// ==UserScript==
// @name           Test
// @description    Test
// @include        http://example.com/*
// @version        1.0
// ==/UserScript==

alert(0);

Was mache ich falsch?


2
Die Unterstützung für Benutzerskriptverzeichnisse wurde 2011 entfernt. Siehe Funktioniert das Benutzerskriptverzeichnis noch mit Chrome 13.0?: Http://stackoverflow.com/questions/6968469/does-the-user-scripts-directory-still-work-with- chrome-13-0 # comment8333680_6979021 .
XP1

Antworten:


240

Am besten installieren Sie die Tampermonkey-Erweiterung .

Auf diese Weise können Sie Greasemonkey-Skripte einfach installieren und einfach verwalten. Außerdem ist es einfacher, Benutzerskripte direkt von Websites wie OpenUserJS , MonkeyGuts usw. zu installieren .

Schließlich werden fast alle GM-Funktionen freigeschaltet, die Sie nicht erhalten, wenn Sie ein GM-Skript direkt mit Chrome installieren. Das heißt, mehr von dem, was GM auf Firefox kann, ist mit Tampermonkey verfügbar.


Aber, wenn Sie wirklich direkt einen GM - Skript installiert werden sollen, ist es einfach , ein richtigen Schmerzen auf Chrome in diesen Tagen ...

Chrome Nach ungefähr August 2014:

Sie können eine Datei weiterhin auf die Erweiterungsseite ziehen und sie funktioniert ... Bis Sie Chrome neu starten. Dann wird es dauerhaft deaktiviert. Siehe Continuing zu „schützen“ Chrome - Nutzer vor bösartigen Erweiterungen für weitere Informationen. Auch hier ist Tampermonkey der kluge Weg. (Oder wechseln Sie den Browser ganz auf Opera oder Firefox.)

Chrome 21+:

Chrome ändert die Art und Weise, wie Erweiterungen installiert werden . Userscripts sind aber reduzierte Erweiterungen in Chrome. Ab Chrome 21 ist das Link-Klick-Verhalten für Benutzerskripte deaktiviert . Um ein Benutzerskript zu installieren, ziehen Sie die Datei **. User.js * auf die Seite Erweiterungen ( chrome://extensionsin der Adresseingabe).

Ältere Chrome-Versionen:

Ziehen Sie Ihre **. User.js * -Dateien einfach in ein beliebiges Chrome-Fenster. Oder klicken Sie auf einen Greasemonkey-Skript-Link.

Sie erhalten eine Installationswarnung:
Erstwarnung

Klicken Sie auf Weiter .


Sie erhalten einen Bestätigungsdialog:
Bestätigungsdialog

Klicken Sie auf Hinzufügen .


Anmerkungen:

  1. Auf diese Weise installierte Skripte unterliegen Einschränkungen im Vergleich zu einem Greasemonkey-Skript (Firefox) oder einem Tampermonkey-Skript. Siehe Browserübergreifendes User-Scripting, Abschnitt Chrome .

Steuern des Skripts und des Namens:

Standardmäßig installiert Chrome Skripts im Erweiterungsordner 1 mit kryptischen Namen und Versionsnummern. Wenn Sie versuchen, ein Skript unter diesem Ordnerbaum manuell hinzuzufügen, wird es beim nächsten Neustart von Chrome gelöscht.

Um die Verzeichnisse und Dateinamen auf etwas Bedeutenderes zu steuern, können Sie:

  1. Erstellen Sie ein Verzeichnis, das für Sie am besten geeignet ist und in dem Chrome normalerweise nicht nach Erweiterungen sucht . Beispiel: Erstellen : C:\MyChromeScripts\.

  2. Erstellen Sie für jedes Skript ein eigenes Unterverzeichnis. Zum Beispiel HelloWorld.

  3. Erstellen oder kopieren Sie in diesem Unterverzeichnis die Skriptdatei. Speichern Sie beispielsweise den Code dieser Frage als : HelloWorld.user.js.

  4. Sie müssen auch eine Manifestdatei in diesem Unterverzeichnis erstellen, deren Name lautet : manifest.json.

    In unserem Beispiel sollte es Folgendes enthalten:

    {
        "manifest_version": 2,
        "content_scripts": [ {
            "exclude_globs":    [  ],
            "include_globs":    [ "*" ],
            "js":               [ "HelloWorld.user.js" ],
            "matches":          [   "https://stackoverflow.com/*",
                                    "https://stackoverflow.com/*"
                                ],
            "run_at": "document_end"
        } ],
        "converted_from_user_script": true,
        "description":  "My first sensibly named script!",
        "name":         "Hello World",
        "version":      "1"
    }

    Die manifest.jsonDatei wird von Chrome automatisch aus dem Meta-Block generiert, wenn ein Benutzerskript installiert wird. Die Werte @includeund @excludeMeta-Regeln werden gespeichert in include_globsund exclude_globs, @match(empfohlen) wird in der gespeicherten matchesListe. "converted_from_user_script": trueist erforderlich, wenn Sie eine der unterstützten GM_*Methoden verwenden möchten .

  5. Erweitern Sie jetzt im Erweiterungsmanager von Chrome (URL = chrome: // extensions / ) "Entwicklermodus" .

  6. Klicken Sie auf die Schaltfläche Entpackte Erweiterung laden ....

  7. Fügen Sie für den Ordner den Ordner für Ihr Skript ein. In diesem Beispiel ist dies : C:\MyChromeScripts\HelloWorld.

  8. Ihr Skript ist jetzt installiert und betriebsbereit!

  9. Wenn Sie Änderungen an der Skriptquelle vornehmen, klicken Sie auf den Link Neu laden , damit sie wirksam werden:

    Link neu laden




1 Der Ordner lautet standardmäßig:

Windows XP:
  Chrome:% AppData% \ .. \ Lokale Einstellungen \ Anwendungsdaten \ Google \ Chrome \ Benutzerdaten \ Standard \ Erweiterungen \
  Chromium:% AppData% \ .. \ Lokale Einstellungen \ Anwendungsdaten \ Chromium \ Benutzerdaten \ Standard \ Erweiterungen \

Windows Vista / 7/8:
  Chrome:% LocalAppData% \ Google \ Chrome \ Benutzerdaten \ Standard \ Erweiterungen \
  Chromium:% LocalAppData% \ Chromium \ Benutzerdaten \ Standard \ Erweiterungen \

Linux:
  Chrome: ~ / .config / google-chrome / Standard / Erweiterungen /
  Chrom: ~ / .config / chrom / Default / Extensions /

Mac OS X:
  Chrome: ~ / Bibliothek / Anwendungsunterstützung / Google / Chrome / Standard / Erweiterungen /
  Chrom: ~ / Bibliothek / Anwendungsunterstützung / Chrom / Standard / Erweiterungen /

Sie können es jedoch ändern, indem Sie Chrome mit der --user-data-dir=Option ausführen.


1
Tolle Antwort - aktualisiert, um die neue Chrome-Richtlinie "Nur Webshop" widerzuspiegeln. Sie können nur .user.js-Dateien in das Erweiterungsfenster ziehen.
Crb

2
@ColonelPanic, leider nein, kannst du nicht. Das automatisch generierte Manifest ist derzeit nicht mit dem Erweiterungsprozess kompatibel! Es wird nicht verwendet "manifest_version": 2, was jetzt erforderlich ist. Verwenden Sie das Beispiel in der Antwort als Startkopie (oder vergessen Sie das zumindest nicht "manifest_version": 2). ... Google richtet alle "normalen" Nutzerskripte so ein, dass sie in einer ausstehenden Version fehlschlagen, es sei denn, sie ändern den automatischen Manifestierungsprozess bald.
Brock Adams

1
@brock Ich habe gerade mein Userscript wie die zweite Antwort per Drag & Drop in das Erweiterungsfenster gezogen und muss mich jetzt nicht mehr um die Überprüfung von Tampermonkey kümmern. Es hat einfach funktioniert. :)
Björn

1
@brock Ich weiß, dass Sie das haben, aber angesichts Ihrer Empfehlung, Tampermonkey zu verwenden, eine Erweiterung, die Zugriff auf alle Informationen Ihrer Bank-Websites, Ihr Facebook, alles erfordert, ist die zweite Antwort besser. Und was 'überprüft' betrifft, gibt es absolut nichts, was jemand tun kann, um eine Chrome-Erweiterung zu überprüfen, da Sie sie automatisch aktualisieren können, um jederzeit schlechte Dinge zu tun, und sie dann erneut aktualisieren können, um dies zu verbergen. Sie müssten jedes Mal jede Änderung überprüfen. Es sind Berechtigungen für alles. Alles.
Björn

1
@ Marshmellooooooos, funktioniert immer noch für mich (Chrome 54.0.2840.99 m). Wenn Sie es nicht zum Laufen bringen können, installieren Sie entweder Tampermonkey oder öffnen Sie eine neue Frage mit GENAUEN Details zu dem, was Sie versucht haben.
Brock Adams

53

Update 2016: scheint wieder zu funktionieren.

Update August 2014: Funktioniert ab den neuesten Chrome-Versionen nicht mehr.


Ja, der neue Zustand ist scheiße. Zum Glück ist es nicht so schwer, wie die anderen Antworten implizieren.

  1. Durchsuchen Sie in Chrome nach chrome://extensions
  2. Ziehen Sie die .user.jsDatei auf diese Seite.

Voila. Sie können Dateien auch aus der Fußzeile des Downloads auf die Registerkarte Erweiterungen ziehen.

Chrome erstellt automatisch eine manifest.jsonDatei in dem von Brock dokumentierten Erweiterungsverzeichnis .

<3 Freiheit.


15
Stellen Sie sicher, dass der Dateiname wie <Skriptname> .user.js ist, andernfalls erkennt Chrome ihn nicht als Erweiterung
Paco

1
@AlexTracer Es funktioniert für mich auf Chromium 33. Vielleicht machst du etwas falsch.
user7610

4
Funktioniert in Chrome 36 nicht mehr. Auf diese Weise hinzugefügte Benutzerskripte werden mit der Meldung "Diese Erweiterung ist nicht im Chrome Web Store aufgeführt und wurde möglicherweise ohne Ihr Wissen hinzugefügt" angezeigt. Das Kontrollkästchen "Aktivieren" ist deaktiviert.
Beschützer ein

2
Dies funktioniert bei mir in Chrome 51 und ich verwende keine Befehlszeilenparameter. Vielleicht haben sie es wieder geändert?
Miscreant

6
Ich habe es gerade versucht (Chrome 60) und wurde an eine Seite weitergeleitet, auf der steht: "Erweiterungen, die nicht im Chrome Web Store veröffentlicht wurden, sind ausgegraut und können nicht wieder aktiviert werden." Klingt nach dem Verhalten im August 2014. Ich bin mir nicht sicher, ob sie dies wieder deaktiviert haben oder ob mir nur etwas fehlt.
Pops

11

Dieser Parameter funktioniert für mich:

--enable-easy-off-store-extension-install

Mach Folgendes:

  1. Klicken Sie mit der rechten Maustaste auf Ihr "Chrome" -Symbol.
  2. Wählen Sie Eigenschaften
  3. Platzieren Sie am Ende Ihrer Ziellinie die folgenden Parameter: --enable-easy-off-store-extension-install
  4. Es sollte so aussehen: chrome.exe --enable-easy-off-store-extension-install
  5. Starten Sie Chrome, indem Sie auf das Symbol doppelklicken


1
Administratoren können auch eine Politik für alle Benutzer erstellen, mit den erlaubten URLs durch das Muster der weißen Liste: chromium.org/administrators/...
joeytwiddle

Muss ich das alte Skript wirklich löschen und komplett neu installieren, indem ich es beim Bearbeiten erneut in den Browser ziehe? Oder gibt es einen einfacheren Weg?
YMMD

Um ein Skript zu aktualisieren, navigiere ich auf dem Dateisystem oder dem Webserver dorthin und klicke auf, um es zu installieren. Chrome überschreibt die alte Version. Wenn Sie ein Skript entwickeln und es nicht weiter installieren möchten, versuchen Sie es mit einem Lesezeichen / Userscript-Hybrid: stackoverflow.com/questions/1810885/…
joeytwiddle

Mmmm ja, es sieht so aus, als hätten sie das Seitenladen absichtlich deaktiviert
joeytwiddle

1

Teilen und installieren Sie Userscript mit einem Klick

Um die automatische Installation durchzuführen (aber jährlich zu bestätigen), können Sie gist (gist.github.com) mit dem <filename>.user.jsDateinamen erstellen , um die Installation per Mausklick zu erhalten, wenn Sie auf Raw klicken und diese Seite aufrufen:

Installationsseite

Wie macht man das ?

  1. Benennen <filename>.user.jsSie Ihren Kern , schreiben Sie Ihren Code und klicken Sie auf "Erstellen".
    Datei auf den Punkt bringen

  2. Klicken Sie auf der Hauptseite auf Raw , um die Installationsseite aufzurufen (erster Bildschirm).
    Raw-Taste

  3. Überprüfen Sie den Code und installieren Sie ihn.


0

April 2020 Antwort

In Chromium 81+ habe ich die Antwort gefunden: Gehen Sie zu chrome: // extensions /, klicken Sie, um den Entwicklermodus in der oberen rechten Ecke zu aktivieren, und ziehen Sie dann das Skript .user.js per Drag & Drop.


In Chrome (nicht Chromium) funktioniert dies bei mir nicht. Es heißt, es sei nicht aus dem Chrome-Webshop und zwinge es, es zu deaktivieren.
Monkpit
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.