我希望我的Chrome擴展程序的彈出頁面顯示一個Google Chart,顯示有關用戶新聞閱讀習慣的信息。我注意到(特別是在這裏:Chrome extension doesn't work),與此相關的一個問題是,Chrome擴展程序不允許內聯腳本,這會使包括使用Google圖表所需的API文件變得複雜。有沒有解決的辦法?有什麼地方可以下載整個API來簡單地包含在我的擴展中?Chrome擴展程序彈出式菜單中的Google圖表?
3
A
回答
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訪問權限,因此您需要在普通腳本和沙箱之間傳遞結果。
是不是這個[answer](http://stackoverflow.com/questions/10799257/chrome-extension-doesnt-work#comment14051301_10799671)不夠好? – 2013-03-11 23:33:16
我希望得到更多的細節,或者可能的替代方案。您會注意到我在原帖中鏈接了該主題,並且沒有提供太多答案 - 如果沒有更多答案,我想知道。 – Zhankfor 2013-03-11 23:59:36
**沒有辦法放寬這個限制。**看起來像是對我的明確答案。 – 2013-03-12 01:47:36