![](/img/trans.png)
[英]How to include jQuery in my manifest.json file for a chrome Extension
[英]How to include an external object in my Chrome Extension?
我有一個chrome擴展,其對象如下所示:
someFunctions = {
'a': function() {
doStuff();
},
'b': function() {
doOtherStuff();
}
}
目前,我的擴展程序需要每次someFunctions需要新功能時進行更新。 由於我的擴展程序已從someFunctions中的2個功能躍升至21個,每次都需要進行新的更新,因此這令人非常沮喪。
我想從我的域外部加載此對象,因此我的擴展程序不需要任何新更新即可修復潛在的錯誤或小麻煩。 這樣做的最佳方法是什么? 我想避免將我的域添加到清單中的權限列表中,或者根本不增加擴展名中的權限-我不需要加載整個.js-只是一些功能。
我想避免將代碼重組為一些奇怪的JSON對象,並且反對使用eval()
。
通常,由於默認的內容安全策略,您將無法執行此操作。
但是,只要您通過HTTPS提供文件,擴展名就可以放寬此策略(這是嘗試防止MITM的安全要求)。
閱讀CSP文檔 。
具體來說,假設您的JS文件已作為https://example.com/awesome.js
。 您無法擺脫“我不需要加載整個.js-只需加載一些函數”的問題,Chrome需要評估您的代碼(如果其中包含函數)。
您需要將其添加到清單中的CSP中:
"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"
我認為您不能通過清單包含外部腳本(但歡迎嘗試,這會很有趣) ; 如果是HTML頁面(如彈出窗口),則只需在其中包含<script>
標記。
否則,可以通過以編程方式創建<script>
標記並將其添加到頁面中來避免使用eval
。 對於內容腳本,您可能應該使用AJAX / eval(或使用tabs.executeScript
的{code: "..."}
形式的tabs.executeScript
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.