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

相關問題