3

我希望我的Chrome擴展程序的彈出頁面顯示一個Google Chart,顯示有關用戶新聞閱讀習慣的信息。我注意到(特別是在這裏:Chrome extension doesn't work),與此相關的一個問題是,Chrome擴展程序不允許內聯腳本,這會使包括使用Google圖表所需的API文件變得複雜。有沒有解決的辦法?有什麼地方可以下載整個API來簡單地包含在我的擴展中?Chrome擴展程序彈出式菜單中的Google圖表?

+0

是不是這個[answer](http://stackoverflow.com/questions/10799257/chrome-extension-doesnt-work#comment14051301_10799671)不夠好? – 2013-03-11 23:33:16

+0

我希望得到更多的細節,或者可能的替代方案。您會注意到我在原帖中鏈接了該主題,並且沒有提供太多答案 - 如果沒有更多答案,我想知道。 – Zhankfor 2013-03-11 23:59:36

+0

**沒有辦法放寬這個限制。**看起來像是對我的明確答案。 – 2013-03-12 01:47:36

回答

1

如果文檔位於Chrome擴展程序的上下文中,因爲它違反了內嵌JavaScript規則,所以無法使用Google圖表。但是,您可以將iframe放入引用遠程資源的擴展的彈出窗口中。例如,如果下面的代碼片段是在你的彈出:

<iframe src="https://mycoolextension.com/user/12345"></iframe> 

然後你就可以擁有使用可在地址https://mycoolextension.com/user/12345谷歌圖表的應用程序。如果要將圖表與擴展的數據集成,則需要將參數添加到圖表iframe的地址,或者實現內容腳本以將值傳遞到iframe。

2

原則上,擴展可以使用違反CSP的庫。但是,這需要額外的箍跳:Sandboxing

"sandbox": { 
    "pages": [ 
     "sandbox.html" 
    ] 
    "content_security_policy": 
     "sandbox allow-scripts; script-src 'self' 'unsafe-eval' https://www.google.com/jsapi" 
    ], 

它是專門爲解決此問題而創建的。有關實施細節,請參閱"Using eval in Chrome Extensions. Safely."指南。

由於沙盒頁面沒有Chrome API訪問權限,因此您需要在普通腳本和沙箱之間傳遞結果。

相關問題