可以将油脂猴类型的用户脚本打包为 Chrome 扩展程序吗?
Posted
技术标签:
【中文标题】可以将油脂猴类型的用户脚本打包为 Chrome 扩展程序吗?【英文标题】:Can a greasemonkey-type userscript be packaged as a Chrome extension? 【发布时间】:2012-07-13 22:10:31 【问题描述】:今天谷歌changed the way userscripts are installed in Chrome。您再也不能只单击包含一个链接,确认几个对话框并安装它。现在您必须使用 Save As... 下载脚本,打开包含它的 Finder/Explorer 窗口,在 Chrome 中打开 Extensions 窗口,然后将脚本拖到扩展程序窗口。 IOW,一个大 PITA。
据推测,另一种选择是将其打包为 Chrome 扩展程序并在 Chrome 网上商店中获取。但是,我在任何地方都找不到任何信息表明您可以将用户脚本打包为扩展。 这可能吗?如果可以,是否有任何新限制、文档链接或其他提示?
【问题讨论】:
21.0.1180.41 测试版。不知道为什么我在测试版,但它自动更新到这个版本。显然,该更改已经在开发管道中进行了一段时间,并且即将发布。您可以通过运行带有 --enable-easy-off-store-extension-install 的 chrome 来绕过新行为,但这不是最终用户解决方案。不幸的是,最容易安装用户脚本的浏览器变得更加困难。 不幸的是,新方法(拖放)不适用于当前版本,因此一旦拖放在发行版中生效,用户将需要两种安装方法有点 【参考方案1】:先做两件事:
Chrome 的这种新行为对于用户脚本来说似乎过于严格和苛刻。如果您同意,请向 Google 表达您的不满。 (用户脚本不像成熟的扩展那样危险或强大。)
Chrome 提供了两种机制来(选择性地)禁用这种新的烦恼,而不是尝试打包扩展程序(这似乎是一种低效益的活动):
将 Chrome 配置为以 the --enable-easy-off-store-extension-install
parameter 开头。
添加configuration keys to allow installations from specific sites: 例如,将此条目添加到 Windows 注册表:
Software\Policies\Google\Chrome\ExtensionInstallSources\1 = "http://userscripts.org/*"
允许从那个有用的脚本交换所轻松安装。
将用户脚本打包为扩展(已在最新的版本版本 20.0.1132.57 上验证,可能会发生变化):
为您的用户脚本创建一个脚本文件夹和清单,如this answer 的“控制脚本和名称”部分。
从 Chrome Extensions 页面,激活 开发者模式:
单击 Pack 扩展。
输入在步骤 1 中创建的 文件夹 路径,然后点击 Pack Extension:
请注意,新的扩展文件 (HelloWorld.crx
) 和密钥文件 (HelloWorld.pem
) 是在父目录 (C:\MyChromeScripts\
) 中创建的。
现在可以像安装任何其他扩展程序一样安装扩展程序,或者uploaded to the Chrome Web Store。
【讨论】:
同意这太严格了。他们至少应该提供一个禁用限制的选项。您提到的解决方法对开发人员非常有用,但对最终用户不可行。我已经得到了一个测试扩展,可以按照你的描述工作,但我担心谷歌是否会允许/保留它在 Chrome 网上商店中。我正在与 Facebook 合作编写的脚本,我不希望它被谷歌关闭,因为 Facebook 说他们不喜欢它。我会尝试阅读他们的规则。如果我可以信任,从用户的角度来看,扩展路线将是最佳选择。 不要忽视 Tampermonkey 方法。如果 Tampermonkey 不受这种新烦恼的影响,无论如何,它在某些方面比直接的用户脚本更好。 (请注意,我避免发布 Chrome 测试版,所以我不知道 Tampermonkey 是否受到影响。它不应该受到影响,并且肯定会设计一个解决方法,如果是的话。) tapermonkey 在测试版中工作,但对于非技术人员来说,这并不是一个很好的安装体验。它会在单击用户脚本链接时闪烁屏幕,弹出一些神秘的对话框(例如,标题为“chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo 的页面说:”),然后在完成后将用户留在代码屏幕上。 @BrockAdams FWIW,Tampermonkey 在 Chrome 26 中仍然可以正常工作。【参考方案2】:您可以使用像 Tampermonkey 这样的 Chrome 扩展程序来运行/管理您的用户脚本,而无需将它们作为扩展程序本身安装。
(我从来没有用过,所以我不能说它是否有任何好处,但它的评论很好)
【讨论】:
其实可以使用 Tampermonkey 同步 Greasemonkey 脚本,所以我更喜欢使用 TamperMonkey:forum.tampermonkey.net/viewtopic.php?f=26&t=414以上是关于可以将油脂猴类型的用户脚本打包为 Chrome 扩展程序吗?的主要内容,如果未能解决你的问题,请参考以下文章