Добавление пользовательского сценария в Google Chrome вручную

162

Вместо того, чтобы «устанавливать» пользовательские скрипты, я нашел много обучающих программ в Интернете, чтобы добавить их вручную. Все они сказали мне сделать те же шаги:

  • Создайте каталог C: \ Users \ Blabla \ AppData \ Local \ Google \ Chrome \ User Data \ Default \ User Scripts
  • Поместите туда файл .js, который содержит скрипт пользователя.
  • Запустите Chrome с параметром --enable-user-scripts

Я так и сделал - но мой демо-скрипт ничего не делает:

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

alert(0);

Что я делаю не так?

YMMD
источник
2
Поддержка каталога пользовательских сценариев была удалена в 2011 году. См. Работает ли каталог пользовательских сценариев с Chrome 13.0 ?: http://stackoverflow.com/questions/6968469/does-the-user-scripts-directory-still-work-with- chrome-13-0 # comment8333680_6979021 .
XP1

Ответы:

241

Лучше всего установить расширение Tampermonkey .

Это позволит вам легко устанавливать скрипты Greasemonkey и легко управлять ими. Также это упрощает установку пользовательских скриптов непосредственно с сайтов, таких как OpenUserJS , MonkeyGuts и т. Д.

Наконец, он открывает большую часть всех функций GM, которые вы не получите, установив сценарий GM напрямую с Chrome. То есть, многое из того, что может сделать GM на Firefox, доступно с Tampermonkey.


Но если вы действительно хотите установить GM-скрипт напрямую, то в наши дни Chrome легко доставляет боль ...

Chrome примерно после августа 2014 года:

Вы все еще можете перетащить файл на страницу расширений, и он будет работать ... Пока вы не перезапустите Chrome. Тогда он будет навсегда отключен. См. Продолжение «защиты» пользователей Chrome от вредоносных расширений для получения дополнительной информации. Опять же, Tampermonkey - это разумный путь. (Или переключите браузеры на Opera или Firefox.)

Chrome 21+:

Chrome меняет способ установки расширений . Пользовательские скрипты - это урезанные расширения на Chrome, но. Начиная с Chrome 21 , поведение щелчка ссылки отключено для пользовательских скриптов . Чтобы установить пользовательский сценарий, перетащите файл **. User.js * на страницу « Расширения» ( chrome://extensionsв поле ввода адреса).

Старые версии Chrome:

Просто перетащите свои **. User.js * файлы в любое окно Chrome. Или нажмите на любую ссылку-скрипт Greasemonkey.

Вы получите предупреждение об установке:
Начальное предупреждение

Нажмите Продолжить .


Вы получите диалог подтверждения:
диалог подтверждения

Нажмите Добавить .


Ноты:

  1. Сценарии, установленные таким образом, имеют ограничения по сравнению со сценарием Greasemonkey (Firefox) или сценарием Tampermonkey. См. Кросс-браузерный пользовательский сценарий, раздел Chrome .

Управление сценарием и именем:

По умолчанию Chrome устанавливает скрипты в папку «Расширения» 1 , заполненные загадочными именами и номерами версий. И, если вы попытаетесь вручную добавить скрипт в это дерево папок, он будет удален при следующем перезапуске Chrome.

Чтобы управлять каталогами и именами файлов для чего-то более значимого, вы можете:

  1. Создайте каталог, который вам удобен, а не там, где Chrome обычно ищет расширения . Например, можно создать: C:\MyChromeScripts\.

  2. Для каждого скрипта создайте свой собственный подкаталог. Например, HelloWorld.

  3. В этом подкаталоге создайте или скопируйте файл сценария. Например, за исключением кода на этот вопрос, как: HelloWorld.user.js.

  4. Кроме того, необходимо создать файл манифеста в этом подкаталоге, то он должен быть назван: manifest.json.

    Для нашего примера он должен содержать:

    {
        "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"
    }

    manifest.jsonФайл автоматически генерируется из мета-сыгравший Chrome, когда установлен скрипт пользователя. Значения @includeи @excludeмета-правила хранятся в include_globsи exclude_globs, @match(рекомендуется) хранится в matchesсписке. "converted_from_user_script": trueтребуется, если вы хотите использовать любой из поддерживаемых GM_*методов .

  5. Теперь в диспетчере расширений Chrome (URL = chrome: // extensions / ) разверните «Режим разработчика» .

  6. Нажмите кнопку « Загрузить распакованное расширение ...» .

  7. Для папки, вставить в папку для вашего сценария, в данном примере это: C:\MyChromeScripts\HelloWorld.

  8. Ваш скрипт теперь установлен и работает!

  9. Если вы вносите какие-либо изменения в источник скрипта, нажмите на ссылку « Перезагрузить», чтобы они вступили в силу:

    Перезагрузить ссылку




1 По умолчанию в папке:

Windows XP:
  Chrome:% AppData% \ .. \ Локальные настройки \ Данные приложения \ Google \ Chrome \ Данные пользователя \ По умолчанию \ Расширения \
  Chromium:% AppData% \ .. \ Локальные настройки \ Данные приложения \ Chromium \ Пользовательские данные \ По умолчанию \ Расширения \

Windows Vista / 7/8:
  Chrome:% LocalAppData% \ Google \ Chrome \ Данные пользователя \ По умолчанию \ Расширения \
  Chromium:% LocalAppData% \ Chromium \ Данные пользователя \ По умолчанию \ Расширения \

Linux:
  Chrome: ~ / .config / google-chrome / По умолчанию / Расширения /
  Chromium: ~ / .config / chromium / Default / Extensions /

Mac OS X:
  Chrome: ~ / Библиотека / Поддержка приложений / Google / Chrome / По умолчанию / Расширения /
  Chromium: ~ / Библиотека / Поддержка приложений / Chromium / По умолчанию / Расширения /

Хотя вы можете изменить его, запустив Chrome с --user-data-dir=опцией.

Брок Адамс
источник
1
Отличный ответ - обновлен в соответствии с новой политикой Chrome "только для интернет-магазина". Вы можете перетаскивать только файлы .user.js в окно расширений.
CRB
2
@ColonelPanic, к сожалению, нет, вы не можете. Автоматически сгенерированный манифест в настоящее время не совместим с процессом расширения! Он не использует "manifest_version": 2, что сейчас требуется. Используйте пример в ответе как исходную копию (или, по крайней мере, не забудьте "manifest_version": 2). ... Google настраивает все "нормальные" пользовательские скрипты на сбой в ожидаемом выпуске, если только они скоро не изменят процесс авто-манифеста.
Брок Адамс
1
@brock Я просто перетащил свой пользовательский скрипт в окно расширений, как и второй ответ, и теперь мне не нужно беспокоиться о проверке Tampermonkey. Это просто сработало. :)
Бьорн
1
@brock Я знаю, что у вас это есть, но, учитывая вашу рекомендацию использовать Tampermonkey, расширение, которое требует доступа ко всей информации о ваших банковских сайтах, вашем Facebook, обо всем, второй ответ лучше. А что касается «проверенных», то абсолютно никто ничего не может сделать, чтобы проверить расширение Chrome, поскольку вы можете автоматически обновлять их, чтобы в любое время делать плохие вещи, а затем обновлять их снова, чтобы скрыть это. Вы должны проверять каждое изменение каждый раз. Это разрешения на все. Все.
Бьорн
1
@marshmellooooooos, у меня все еще работает (Chrome 54.0.2840.99 m). Если вы не можете заставить его работать, либо установите Tampermonkey, либо откройте новый вопрос с ТОЧНЫМИ подробностями того, что вы пробовали.
Брок Адамс
53

Обновление 2016: похоже, снова работает.

Обновление август 2014: больше не работает с последними версиями Chrome.


Да, новое положение вещей отстой. К счастью, это не так сложно, как подразумевают другие ответы.

  1. Просмотрите в Chrome, чтобы chrome://extensions
  2. Перетащите .user.jsфайл на эту страницу.

Вуаля. Вы также можете перетащить файлы из нижнего колонтитула загрузок на вкладку расширений.

Chrome автоматически создаст manifest.jsonфайл в каталоге расширений, который задокументировал Брок .

<3 свободы.

Полковник паника
источник
15
убедитесь, что имя файла похоже на <scriptname> .user.js, иначе chrome не распознает его как расширение
Paco
1
@AlexTracer Это работает для меня на Chromium 33. Возможно, вы делаете что-то не так.
user7610
4
Больше не работает в Chrome 36. Пользовательские сценарии, добавленные таким образом, поставляются с сообщением: «это расширение отсутствует в Интернет-магазине Chrome и может быть добавлено без вашего ведома», а флажок enable отключен.
Защитник 1
2
Это работает для меня в Chrome 51, и я не использую какие-либо параметры командной строки. Может быть, они изменили это снова?
Miscreant
6
Я только что попробовал это (Chrome 60) и был отправлен на страницу с надписью «Расширения, которые не были опубликованы в Chrome Web Store, выделены серым цветом, и вы не сможете включить их снова». Похоже на поведение августа 2014 года. Не уверен, что они снова отключили это, или я просто что-то упустил.
Pops
11

Этот параметр работает для меня:

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

Сделайте следующее:

  1. Щелкните правой кнопкой мыши по значку Chrome.
  2. Выберите недвижимость
  3. В конце вашей целевой строки разместите эти параметры: --enable-easy-off-store-extension-install
  4. Это должно выглядеть так: chrome.exe --enable-easy-off-store-extension-install
  5. Запустите Chrome, дважды щелкнув по значку
joeytwiddle
источник
Я получил это от superuser.com/questions/450893/…
joeytwiddle
1
Администраторы могут также создать политику для всех пользователей, с разрешенными URL - белый список по шаблону: chromium.org/administrators/...
joeytwiddle
Действительно ли мне нужно удалить старый скрипт и установить его полностью новым, снова перетащив его в браузер, когда я отредактировал материал? Или есть более простой способ?
YMMD
Чтобы обновить скрипт, я перехожу к нему в файловой системе или на веб-сервере и нажимаю для установки; Chrome перезаписывает старую версию. Если вы разрабатываете сценарий и не хотите продолжать его установку, попробуйте гибридный bookmarklet / userscript: stackoverflow.com/questions/1810885/…
joeytwiddle
Мммм, да, похоже, что они специально отключили боковую загрузку: blog.chromium.org/2018/06/…
joeytwiddle
1

Поделиться и установить usercript одним щелчком мыши

Чтобы выполнить автоматическую установку (но подтвердить вручную), вы можете создать gist (gist.github.com) с <filename>.user.jsименем файла, чтобы выполнить установку по щелчку, когда вы нажмете на Raw и получите эту страницу:

Страница установки

Как это сделать?

  1. Назовите свою суть <filename>.user.js, напишите свой код и нажмите «Создать».
    Сделать файл в гист

  2. На главной странице нажмите на Raw, чтобы получить страницу установки (первый экран).
    Сырая кнопка

  3. Проверьте код и установите его.

A-312
источник
0

Апрель 2020 года Ответ

В Chromium 81+ я нашел ответ: зайдите в chrome: // extensions /, нажмите, чтобы включить режим разработчика в верхнем правом углу, затем перетащите ваш скрипт .user.js.

user1461607
источник
В Chrome (не Chromium) это не работает для меня. Он говорит, что это не из интернет-магазина Chrome и вынуждает его отключить.
Monkpit