首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用户脚本与Chrome扩展

用户脚本与Chrome扩展
EN

Stack Overflow用户
提问于 2012-11-21 14:35:01
回答 3查看 11K关注 0票数 21

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

用原生chrome扩展和用户脚本编写的优缺点是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-21 17:26:08

原生Chrome扩展和用户脚本之间有一些区别。

查看this wiki section查看Greasemonkey脚本和Chrome用户脚本之间的差异列表。

如果您希望利用跨浏览器用户脚本,请尽量不使用GM_*方法或unsafeWindow

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

如果您从部署的角度来看待此主题,则差异是显著的:

  • 一键安装仅在Chrome网络商店中可用。仅限本机扩展。
  • 用户脚本和本机扩展都可以从本地文件浏览器拖到扩展页面以安装扩展。

(用户脚本转换为has been deprecated.扩展;警告:见下文)

  • 原生用户脚本支持将在2013年末停止工作,因为转换后的用户脚本使用清单版本1,该版本为Chrome

结论

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

代码语言:javascript
运行
复制
manifest.json
whatever.user.js

最小manifest.json:

代码语言:javascript
运行
复制
{
     "name": "name of extension",
     "version": "1",
     "manifest_version": 2,
     "content_scripts": [{
         "js": ["whatever.user.js"],
         "matches": ["http://example.com/*"]
      }]
}

另请参阅

  • http://developer.chrome.com/extensions/content_scripts.html
  • http://developer.chrome.com/extensions/match_patterns.html
票数 16
EN

Stack Overflow用户

发布于 2012-11-25 14:36:24

写作(和分享!)用户脚本:只要您只使用普通的浏览器DOM API,使用其他支持用户脚本的浏览器的任何人都可以很轻松地拾取并运行您的脚本(通常只是安装它而不进行编辑)。

当你使用谷歌Chrome时,对他们不利的情况是,从Chrome21开始,安装它们变得非常混乱:你需要右键单击安装链接,将其保存到磁盘上,打开扩展页面,然后将保存的脚本拖入其中(是的),或者从Chrome Web Store安装TamperMonkey (它是免费的,基本上就像Greasemonkey对火狐所做的那样:为用户脚本安装和维护提供一个可承受的用户界面)。

虽然你只需要做你列出的事情,但你可能不需要比用户脚本本机提供的更多的特权API访问:在另一个站点上,尝试执行你将在devtools控制台中为脚本编写的XMLHttpRequest代码,你将看到它是否足以满足你的需要。如今,许多web API都支持CORS,这可能会使您的用例不必求助于专有的浏览器原生扩展API。

票数 2
EN

Stack Overflow用户

发布于 2012-11-21 15:06:07

用户脚本(即随Chrome直接安装的扩展最终会自动转换为带有内容脚本的扩展,因此它们本质上是相同的。用户脚本更快、更容易编写,而且好的用户脚本可以在其他浏览器中得到支持。然而,Chrome中的用户脚本有几个限制。它们不能直接从网页读取或写入变量(只有标准DOM是共享的)。他们不能制作跨域XHR。相反,扩展功能更强大,但更难开发。

看起来你必须要写一个Chrome扩展,因为你需要“对外部网站进行API调用”。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13487661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档