2

我在试着让我的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扩展程序有用。

回答

3

我认为你仍然有困难,因为你没有完全理解内容脚本和背景页面之间的区别。

内容脚本有一定的限制。他们不能:

  • 使用Chrome *的API(除了chrome.extension的部分)由它们的扩展的页面定义
  • 使用变量或函数
  • 使用变量或函数通过网页或定义。其它内容脚本
  • 进行跨网站XMLHttpRequests

基本上所有他们可以是一个网页的访问DOM在那里他们被注射并且用背景页面通信(发送请求)。

幸运地,背景页面没有任何限制,只有它无法访问用户正在查看的页面。好消息是,后台页面可以与内容脚本进行通信(再次通过请求)。

正如你所看到的背景页面和内容脚本互为补充。如果你同时使用两者,你​​几乎没有任何限制。所有你需要的是正确地分开你的逻辑在这两者之间。

至于您的第一个问题 - 内容脚本无法进行跨域请求,但后台页面可以。你可以阅读更多here

+0

Serg,谢谢你解释的区别。我有点知道,但你的帖子已经让它更清晰一些。我不知道XMLHttpRequests存在。他们是否允许发布JSON? – joshholat 2010-10-19 04:49:59

+0

@joshholat是的,任何你想要的。您可以将jquery(或您选择的框架)包含到bkgd页面中,并使用它的ajax特性而不是本机XMLHttpRequest。 – serg 2010-10-19 04:53:58

相关问题