167

我没有“安装”用户脚本,而是在网上找到了许多手动添加它的教程。他们都告诉我做同样的步骤:

  • 创建目录 C:\Users\Blabla\AppData\Local\Google\Chrome\User Data\Default\User Scripts
  • 在那里放置一个 .js 文件,其中包含用户脚本
  • 使用参数 --enable-user-scripts 启动 Chrome

我这样做了 - 但我的演示脚本没有做任何事情:

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

alert(0);

我究竟做错了什么?

4

5 回答 5

246

最好的办法是安装Tampermonkey 扩展

这将允许您轻松安装 Greasemonkey 脚本并轻松管理它们。此外,它还可以更轻松地直接从OpenUserJSMonkeyGuts等网站安装用户脚本。

最后,它解锁了大多数通过直接使用 Chrome 安装 GM 脚本无法获得的 GM 功能。也就是说,Firefox 上的 GM 可以做的更多事情,可以通过 Tampermonkey 获得。


但是,如果你真的想直接安装 GM 脚本,这几天在 Chrome 上很容易痛苦......

Chrome 大约在 2014 年 8 月之后:

您仍然可以将文件拖到扩展页面,它会工作......直到您重新启动 Chrome。然后它将被永久禁用。有关详细信息,请参阅继续“保护”Chrome 用户免受恶意扩展程序的侵害。同样,Tampermonkey 是明智的选择。(或者将浏览器完全切换到 Opera 或 Firefox。)

铬 21+:

Chrome 正在改变扩展程序的安装方式。用户脚本是 Chrome 上的精简扩展,但是。从 Chrome 21 开始,用户脚本的链接点击行为被禁用。要安装用户脚本,请将 **.user.js* 文件拖到扩展页面(chrome://extensions在地址输入中)。

较旧的 Chrome 版本:

只需将您的 **.user.js* 文件拖到任何 Chrome 窗口中。或单击任何 Greasemonkey 脚本链接。

您将收到安装警告:
初步警告

单击继续


您将看到一个确认对话框:
确认对话框

单击添加


笔记:

  1. 与 Greasemonkey (Firefox) 脚本或 Tampermonkey 脚本相比,以这种方式安装的脚本具有局限性。请参阅跨浏览器用户脚本,Chrome 部分

控制脚本和名称:

默认情况下,Chrome 会在Extensions 文件夹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文件夹默认为:

视窗XP:
  Chrome:%AppData%\..\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions\
  Chromium:%AppData%\..\Local Settings\Application Data\Chromium\User Data\Default\Extensions\

Windows Vista/7/8:
  Chrome:%LocalAppData%\Google\Chrome\User Data\Default\Extensions\
  Chromium:%LocalAppData%\Chromium\User Data\Default\Extensions\

Linux:
  铬:~/.config/google-chrome/Default/Extensions/
  铬:~/.config/chromium/Default/Extensions/

Mac OS X:
  铬:〜/图书馆/应用程序支持/谷歌/铬/默认/扩展/
  Chromium:~/Library/Application Support/Chromium/Default/Extensions/

尽管您可以通过使用该--user-data-dir=选项运行 Chrome 来更改它。

于 2011-03-10T11:48:38.627 回答
53

2016 年更新:似乎又开始工作了。

2014 年 8 月更新:从最近的 Chrome 版本开始不再有效。


是的,新的情况很糟糕。幸运的是,这并不像其他答案所暗示的那么难。

  1. 在 Chrome 中浏览到chrome://extensions
  2. .user.js文件拖到该页面中。

瞧。您还可以将文件从下载页脚栏中拖到扩展选项卡。

Chrome 会自动在Brock 记录manifest.json的扩展目录中创建一个文件。

<3 自由。

于 2012-12-02T18:05:15.207 回答
12

这个参数对我有用:

--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
于 2012-07-26T05:47:05.477 回答
2

一键分享和安装用户脚本

要进行自动安装(但手动确认),您可以使用文件名制作gist (gist.github.com)<filename>.user.js ,以便在单击Raw并获取此页面时获得点击安装:

安装页面

这个怎么做 ?

  1. 命名您的要点<filename>.user.js,编写代码并单击“创建”。
    根据要点制作文件

  2. 在 gist 页面中,单击Raw以获取安装页面(第一个屏幕)。
    原始按钮

  3. 检查代码并安装它。

于 2018-05-26T22:18:58.153 回答
1

2020 年 4 月答案

在 Chromium 81+ 中,我发现答案是:转到 chrome://extensions/,单击右上角的启用开发人员模式,然后拖放您的 .user.js 脚本。

于 2020-04-14T07:49:29.433 回答