如何在Chrome 21+中安装私人用户脚本?


60

在Chrome 20和更早版本中,您只需.user.js在Chrome中打开任何文件,它就会提示您安装用户脚本。

但是,在Chrome 21及更高版本中,它会下载文件,并在顶部显示警告:“只能从Chrome网上应用店添加扩展程序,应用程序和用户脚本”。

屏幕截图

“了解详情”链接指向http://support.google.com/chrome_webstore/bin/answer.py?hl=zh_CN&answer=2664769,但是该页面上没有提到用户脚本,只说了.crx格式扩展名,应用和主题。

这部分听起来很有趣:

企业管理员:您可以指定被允许直接通过安装扩展程序,应用和主题网址的ExtensionInstallSources政策。

因此,我运行了以下命令,然后重新启动了Chrome和Chrome Canary:

defaults write com.google.Chrome ExtensionInstallSources -array "https://gist.github.com/*"
defaults write com.google.Chrome.canary ExtensionInstallSources -array "https://gist.github.com/*"

可悲的是,这些设置似乎只影响扩展,应用程序和主题(如文本中所述),而不影响用户脚本。(我已经提交了一个错误,要求该设置也影响用户脚本。)

关于如何在Chrome 21+中安装私有用户脚本(我不想添加到Chrome网上应用店)的任何想法?


您是否尝试过在“设置”->“扩展”中启用开发人员模式?不知道它是否会起作用,但是您可以尝试一下。
— Rhyuk

@Rhyuk感谢您的建议。不过,我启用了开发人员模式-似乎没有什么不同。
— Mathias Bynens

Answers:


37

问题在于gist.github.com的原始URL重定向到另一个域。因此,我们必须使用以下命令:

# Allow installing user scripts via GitHub or Userscripts.org
defaults write com.google.Chrome ExtensionInstallSources -array "https://*.github.com/*" "http://userscripts.org/*"
defaults write com.google.Chrome.canary ExtensionInstallSources -array "https://*.github.com/*" "http://userscripts.org/*"

这可行!


无论如何,这似乎是一种解决方法(感谢Paul Horn的提示):

  1. 下载用户脚本。
  2. 打开chrome://chrome/extensions/。
  3. 将用户脚本文件拖放到您在步骤2中打开的页面上。

这似乎比必须编辑用于打开Chromium的命令更好。谢谢!
— btleffler 2012年

@btleffler除非您每次都必须跳过该箍,而不必进行一次更改。
— 尤金·别列索夫斯基

注意 拖放时,您需要将文件准确地拖放到消息上。页面上的其他任何地方都无法使用。
— Panic Panic 2012年

添加扩展的拖放方式仍然有效吗?在OSX上的Chrome 24上似乎并非如此。
— 维克多

值得一提的是github允许在<username> .github.com上托管用户生成的内容(通过“ Github Pages” -pages.github.com)。对于任何对此有安全隐患的人来说,请注意。
— 嗯。

36

与Chrome启动的--enable-easy-off-store-extension-install开关。

要使用命令行开关(来自Chromium.org):

在Windows上:

  • 右键点击“ Chrome”图标。
  • 选择属性
  • 在目标行的末尾,放置以下参数: --enable-easy-off-store-extension-install
  • 它应该看起来像: chrome.exe --enable-easy-off-store-extension-install

在OS X上:

  • /Applications/Chromium.app/Contents/MacOS/Chromium --enable-easy-off-store-extension-install

  • 对于Google Chrome,您需要像这样转义空格: /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-easy-off-store-extension-install

在Linux上:

  • chromium-browser --enable-easy-off-store-extension-install

1
您必须完全退出chrome,而不仅仅是从图标中打开一个新窗口。(这是Google的垃圾)
— 乔纳森。

1
是的,这正在侵占IMO的“邪恶”领土。
— jnylen 2012年

这行得通... :) @MathiasBynens的答案在MacOS / Chrome25上不起作用
— Lipis


1
可以肯定的是,此操作在2014年8月之后的某个时候停止了。现在似乎根本不起作用。
— 布罗克·亚当斯

10

好吧,这花费了我一生几个小时的时间。我猜Google工程师认为,只有我们能弄清楚如何做花招并克服困难,我们才应该安装不受信任的扩展。

Mathias的答案中的说明似乎适用于Mac OS X,但我使用Linux。这是我在Linux上所做的工作,目的是使任何网站上的所有第三方扩展程序,应用程序和用户脚本都能轻松安装(Chrome-21之前的样式):

  1. 创建策略目录(如果尚不存在):

    sudo mkdir -p /etc/opt/chrome/policies/recommended/
    
  2. 创建策略文件:

    cd /etc/opt/chrome/policies/recommended/
    
    sudo tee easy_install_extensions.json <<EOF
    {
        "ExtensionInstallSources": ["<all_urls>"]
    }
    EOF
    
  3. 重新启动Chrome。通过完全退出程序menu -> Exit;不要只是关闭当前窗口。


资料来源:

笔记:

  • <all_urls>(上面使用的)是根据URL match docs的特殊模式。很高兴知道。
  • 根据Linux策略文档,目录/etc/opt/chrome/policies/{managed,recommended}/包含JSON策略文件。如果条目冲突,请managed覆盖recommended。

2
我不知道<all_urls>-非常有用。谢谢!
— Mathias Bynens 2012年

已确认可以在Fedora 18中工作。很棒的帖子,非常有帮助!
— ehime

太棒了!拖放以前没有用,现在可以用了!
— Billyswong 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.