我正在开发一个扩展,它将读取HTML元素的值,然后对外部网站进行API调用,获得结果并在新创建的HTML元素中显示它们。
用原生chrome扩展和用户脚本编写的优缺点是什么?
发布于 2012-11-21 09:26:08
原生Chrome扩展和用户脚本之间有一些区别。
查看this wiki section查看Greasemonkey脚本和Chrome用户脚本之间的差异列表。
如果您希望利用跨浏览器用户脚本,请尽量不使用GM_*
方法或unsafeWindow
。
从开发人员的角度来看,选择用户脚本或Chrome扩展没有优势,因为任何用户脚本都可以很容易地嵌入到Chrome扩展中。
如果您从部署的角度来看待此主题,则差异是显著的:
(用户脚本转换为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/*"]
}]
}
另请参阅
发布于 2012-11-25 06:36:24
写作(和分享!)用户脚本:只要您只使用普通的浏览器DOM API,使用其他支持用户脚本的浏览器的任何人都可以很轻松地拾取并运行您的脚本(通常只是安装它而不进行编辑)。
当你使用谷歌Chrome时,对他们不利的情况是,从Chrome21开始,安装它们变得非常混乱:你需要右键单击安装链接,将其保存到磁盘上,打开扩展页面,然后将保存的脚本拖入其中(是的),或者从Chrome Web Store安装TamperMonkey (它是免费的,基本上就像Greasemonkey对火狐所做的那样:为用户脚本安装和维护提供一个可承受的用户界面)。
虽然你只需要做你列出的事情,但你可能不需要比用户脚本本机提供的更多的特权API访问:在另一个站点上,尝试执行你将在devtools控制台中为脚本编写的XMLHttpRequest代码,你将看到它是否足以满足你的需要。如今,许多web API都支持CORS,这可能会使您的用例不必求助于专有的浏览器原生扩展API。
发布于 2012-11-21 07:06:07
用户脚本(即随Chrome直接安装的扩展最终会自动转换为带有内容脚本的扩展,因此它们本质上是相同的。用户脚本更快、更容易编写,而且好的用户脚本可以在其他浏览器中得到支持。然而,Chrome中的用户脚本有几个限制。它们不能直接从网页读取或写入变量(只有标准DOM是共享的)。他们不能制作跨域XHR。相反,扩展功能更强大,但更难开发。
看起来你必须要写一个Chrome扩展,因为你需要“对外部网站进行API调用”。
https://stackoverflow.com/questions/13487661
复制相似问题