用户脚本与Chrome扩展程序

时间:2012-11-21 06:35:01

标签: google-chrome-extension userscripts tampermonkey

我正在开发一个扩展程序,它将读取HTML元素值,然后对外部网站进行API调用,获取结果并将其显示在新创建的HTML元素中。

在本机Chrome扩展程序与用户脚本中编写它的优点是什么?

3 个答案:

答案 0 :(得分:14)

原生Chrome扩展程序和用户脚本之间存在一些差异。

有关Greasemonkey脚本与Chrome用户脚本之间差异的列表,请参阅this wiki section

如果您想利用跨浏览器用户脚本,请尝试使用GM_*方法或unsafeWindow

从开发人员的角度来看,没有优先选择用户脚本或Chrome扩展程序的优势,因为任何用户脚本都可以轻松嵌入到Chrome扩展程序中。

如果您根据部署查看此主题,则差异很大:

  • 一键安装仅适用于Chrome网上应用店。仅限原生扩展。
  • 可以将用户脚本和本机扩展程序从本地文件浏览器拖到“扩展程序”页面以安装扩展程序。
    (用户脚本将转换为Chrome扩展程序;警告:请参阅下文)
  • 原生用户脚本支持将在2013年底停止工作,因为转换后的用户脚本使用清单版本1,has been deprecated

结论

我建议开发原生扩展。您可以使用以下目录结构从用户脚本轻松创建Chrome扩展程序:

manifest.json
whatever.user.js

最小的manifest.json:

{
     "name": "name of extension",
     "version": "1",
     "manifest_version": 2,
     "content_scripts": [{
         "js": ["whatever.user.js"],
         "matches": ["http://example.com/*"]
      }]
}

另见

答案 1 :(得分:1)

编写(和共享!)用户脚本的情况:只要您使用普通的浏览器DOM API,您的脚本就可以轻松获取并运行(通常只是安装它而无需编辑)任何人使用另一个支持用户脚本的浏览器。

当您使用谷歌浏览器时,针对他们的情况是,从Chrome 21开始,安装它们会变得非常混乱:您需要右键单击安装链接,将其保存到磁盘,打开扩展页面,然后拖动保存那里的脚本(是的),或者从Chrome网上应用店安装TamperMonkey(它是免费的,对Chrome来说基本上是Greasemonkey为Firefox做的事情:为用户脚本安装和维护提供了一个可以忍受的用户界面。)

虽然您只需要执行列出的内容,但您可能不需要比用户脚本本身提供的更多特权API访问权限:尝试执行您在devtools控制台中为脚本编写的XMLHttpRequest代码网站,你会看到它是否足以满足你的需求。如今,许多Web API都支持CORS,这可能会使您的用例无需使用专有的浏览器原生扩展API。

答案 2 :(得分:-3)

直接与Chrome安装的用户脚本(即Greasemonkey脚本)最终会自动转换为带有内容脚本的扩展,因此它们基本相同。 用户脚本编写起来快速简便,其他浏览器也支持良好的用户脚本。但是,Chrome中的用户脚本存在一些限制。它们不能直接从网页读取或写入变量(只共享标准DOM)。他们无法制造跨性别的XHR。 相反,扩展功能更强大,但更难开发。

您似乎需要编写Chrome扩展程序,因为您需要“向外部网站发出API调用”。