如何在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.