假設我們有Chrome擴展程序,該擴展程序使用後臺頁面,彈出頁面或其他一些視圖和內容腳本。有一些與主題領域有關的常量數據,必須從所有視圖和內容腳本中訪問。
分享這些數據的最佳做法是什麼?在Google Chrome瀏覽器擴展程序中共享視圖之間的常量數據
3
A
回答
7
一種方法是將所有共享數據保留在後臺頁面中,並通過getBackgroundPage進行訪問,該功能可在大多數情況下使用。如果不可用(例如在上下文腳本中),則可以使用message passing來獲取數據。
1
由於@BorisSmus mentioned,您可以創建一個單獨的constants.js
文件,您可以在任何需要它的地方包含該文件。
例如,在你的manifest.json
:
"content_scripts": [
{
"js": ["constants.js", /* ... your other content scripts ... */]
}
],
而且在<head>
在您的彈出和背景頁面頂部的下列內容:
<script src="constants.js"></script>
這也並沒有造成問題的好處如果其中一個constants.js
的用戶意外修改了一個變量,因爲每個用戶都有自己的副本。
相關問題
- 1. Google Chrome瀏覽器擴展程序javascript
- 2. 在Google Chrome瀏覽器擴展程序中顯示YouTube視頻
- 3. Chrome擴展:在content.js和popup.js之間共享常量變量
- 4. 在Google Chrome瀏覽器擴展程序中需要外部javascript
- 5. Chrome擴展程序之間的共享功能
- 6. 安全瀏覽器Chrome擴展程序
- 7. 檢測Google Chrome瀏覽器擴展
- 8. iOS8擴展:在容器和擴展之間共享圖像
- 9. Chrome擴展程序的Chrome瀏覽器應用程序行爲
- 10. Google Chrome瀏覽器擴展程序(第17版)
- 11. Google Chrome瀏覽器擴展程序示例
- 12. 在用戶間共享谷歌瀏覽器擴展信息
- 13. Chrome瀏覽器擴展程序在Chrome瀏覽器關閉時不會持續
- 14. 更改Chrome瀏覽器擴展程序圖標
- 15. 如何在擴展和容器應用程序之間共享SQLite數據庫
- 16. 在視圖之間共享數據
- 17. 在視圖之間共享數據
- 18. 我的Google Chrome瀏覽器擴展程序與Linux上的本機程序之間的用戶專用連接
- 19. 如何在兩個瀏覽器窗口之間共享數據
- 20. 如何在瀏覽器標籤之間共享數據?
- 21. PWA可以在瀏覽器之間共享狀態/數據嗎?
- 22. 在Firefox擴展中的文件之間共享數據
- 23. 兩個瀏覽器之間的Chrome擴展不同步
- 24. 爲Chrome瀏覽器擴展程序下載圖片
- 25. 在Chrome瀏覽器擴展程序中傳遞郵件
- 26. 在瀏覽器中彈出Chrome擴展程序通知
- 27. 在Chrome瀏覽器擴展程序中使用eval()://第
- 28. 在Chrome瀏覽器擴展程序中編寫文件
- 29. 如何檢查擴展程序是否安裝在Google Chrome瀏覽器中?
- 30. 如何在Google Chrome瀏覽器擴展程序中添加號碼?
所以你的建議是在背景頁面'window.PI = 3.14'中定義。然後在擴展視圖中使用'chrome.extension.getBackgroundPage()。PI'和內容腳本使用'chrome.extension.sendRequest('giveMePI',function(PI){/ *這裏我們有PI * /})'並再次在後臺頁面:'chrome.extension.onRequest.addListener(function(req,sender,sendResponse){if(req =='giveMePI'){sendResponse(window.PI);}});' 「PI」似乎太複雜了? – disfated
對於那種東西,你可以創建一個constants.js文件,將其作爲內容腳本注入,並從後臺頁面包含。 –
如果您添加此評論作爲單獨的答案,我會接受它。謝謝 – disfated