我正在开发一个扩展程序,它将读取HTML元素的值,然后调用外部网站的API,获取结果并在新创建的HTML元素中显示。
使用原生Chrome扩展和用户脚本编写此扩展的优缺点是什么?
我正在开发一个扩展程序,它将读取HTML元素的值,然后调用外部网站的API,获取结果并在新创建的HTML元素中显示。
使用原生Chrome扩展和用户脚本编写此扩展的优缺点是什么?
本文介绍了原生Chrome扩展和用户脚本之间的几个区别。
请参阅此Wiki部分,了解Greasemonkey脚本和Chrome用户脚本之间的差异列表。
如果您想利用跨浏览器用户脚本,请尽量不要使用GM_*
方法或unsafeWindow
。
从开发者的角度来看,无论是用户脚本还是Chrome扩展都没有优劣之分,因为任何用户脚本都可以轻松地嵌入到Chrome扩展中。
如果您从部署的角度来看待这个话题,那么差异就很明显:
我建议开发原生扩展。您可以使用以下目录结构轻松地从用户脚本创建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/*"]
}]
}
直接在Chrome中安装的用户脚本(例如Greasemonkey脚本)最终会自动转换为带有内容脚本的扩展程序,因此它们本质上是相同的。 用户脚本编写起来快速简单,并且可以在其他浏览器中支持。然而,在Chrome中,用户脚本存在一些限制。它们不能直接从网页读取或写入变量(只能共享标准DOM)。它们也不能进行跨源XHRs。 相反,扩展程序更加强大但开发难度更大。
看起来您需要编写一个Chrome扩展程序,因为您需要“向外部网站进行API调用”。