你可以在Chrome扩展中使用jQuery POST吗?
问题描述:
我在试着让我的Chrome扩展程序与Google Calendar API协同工作。但是,Google建立扩展沙盒的方式几乎不可能。你可以在Chrome扩展中使用jQuery POST吗?
我无法使用JavaScript添加Calendar API,因为我试过了200种不同的方式来包含http://www.google.com/jsapi库。因此,我想尝试使用PHP与Calendar API进行交互。为了运行我的PHP文件,甚至可以通过Chrome扩展程序进行POST?如果不是,那么与任何没有可下载库的外部API进行交互几乎是不可能的,不是吗?如果是这种情况,我看不出您如何使Chrome扩展程序有用。
答
我认为你仍然有困难,因为你没有完全理解内容脚本和背景页面之间的区别。
内容脚本有一定的限制。他们不能:
- 使用Chrome *的API(除了chrome.extension的部分)由它们的扩展的页面定义
- 使用变量或函数
- 使用变量或函数通过网页或定义。其它内容脚本
- 进行跨网站XMLHttpRequests
基本上所有他们可以是一个网页的访问DOM在那里他们被注射并且用背景页面通信(发送请求)。
幸运地,背景页面没有任何限制,只有它无法访问用户正在查看的页面。好消息是,后台页面可以与内容脚本进行通信(再次通过请求)。
正如你所看到的背景页面和内容脚本互为补充。如果你同时使用两者,你几乎没有任何限制。所有你需要的是正确地分开你的逻辑在这两者之间。
至于您的第一个问题 - 内容脚本无法进行跨域请求,但后台页面可以。你可以阅读更多here。
Serg,谢谢你解释的区别。我有点知道,但你的帖子已经让它更清晰一些。我不知道XMLHttpRequests存在。他们是否允许发布JSON? – joshholat 2010-10-19 04:49:59
@joshholat是的,任何你想要的。您可以将jquery(或您选择的框架)包含到bkgd页面中,并使用它的ajax特性而不是本机XMLHttpRequest。 – serg 2010-10-19 04:53:58