我已經爲基於雲的產品之一的鉻插件工作。對於The Chrome,我們已經使用了第三方JS庫(如BackboneJS等)。現在我必須設計一個Firefox擴展,我試圖弄清楚我們可以重用多少代碼。顯然,Mozilla開發者網站花費了幾個小時,對於Firefox擴展來說,我們必須將XUL用於UI。不確定我們是否可以使用Chrome App的HTML和JavaScript函數來實現Firefox擴展,或者估算工作量的方法是什麼。我的理解是我們必須從頭開始,因爲像FF中的Chrome我們沒有背景頁等概念。實施Firefox擴展與實施Chome插件
2
A
回答
1
沒有什麼固有的東西阻止你在HTML/JS中實現UI。您可能必須將其封裝在<window>
(Firefox將打開純HTML)中的XUL <iframe>
或<browser>
(可能包含其他元素)中。
關於擴展的關鍵問題是它們在高級安全上下文中執行,而不是在網頁上執行。因此,他們有能力在瀏覽器和用戶系統中影響更大範圍的事物。當使用<iframe>
或<browser>
元素時,它們具有屬性type
,該屬性默認使內容在提升的安全上下文中運行。默認值爲type="chrome"
,這使得打開的內容位於擴展的較高安全上下文中。 Security best practices in extensions和Displaying web content in an extension without security issues
至於你的JavaScript:從MDN關於與開放內容安全關切<iframe>
,或者沒有從您的分機分配來源<browser>
元素
附加文檔,您應該能夠重新使用大量的它。至少,邏輯。顯然,如何完成與標準文檔中沒有涉及的瀏覽器相關的接口(例如,DOM操作應該非常接近,就像網頁JS一樣),將會出現更大的差異。
相關問題
- 1. 實施Enumerator.GetNext()擴展方法
- 2. 實施內聯擴展
- 3. Chrome擴展 - 實施頻道
- 4. 擴展ViewGroup時正確實施onMeasure()
- 5. 實施ParallaxBackground從演員擴展了libgdx
- 6. 與實施者
- 7. ngCordova AdMob插件實施
- 8. 實施Sencha Touch ListPaging插件
- 9. SublimeText3插件on_modified api實施
- 10. 實施條件
- 11. SimpleSamlPhp與CustomIdP實施
- 12. 實施
- 13. 實施
- 14. 實施`Array`&`ArraySlice`擴展與協議代替
- 15. 實施Eddystone硬件
- 16. Firefox:插件與擴展?
- 17. 與joomla實施BBC gelui 3.0
- 18. JTable中的FileReader與實施
- 19. 與谷歌實施SSO + OAuth
- 20. 爪哇 - 麻煩與實施
- 21. AJAX實施與下拉
- 22. 與CUDA的MySQL實施
- 23. 與實施OneSignal Corna SDK
- 24. 實施PartialEq與從類型
- 25. 實施與<T>
- 26. 實施request.postAsync與藍鳥
- 27. 實施mat2gray OpenCV中與Python
- 28. 實施Uploadify與Zend框架
- 29. 問題與實施Adwhirl
- 30. Firefox插件vs.擴展與插件
更具體地說,當我將Chrome擴展的體系結構與Firefox擴展進行比較時,我沒有在Firefox中找到與Chrome等效的背景頁面。 – sidd 2014-09-24 18:20:49
有很多方法可以用來完成一個始終運行的腳本。如何做到這一點取決於多個考慮因素。至少,你正在做什麼[附加](https://developer.mozilla.org/en-US/Add-ons)([Overlay](https://developer.mozilla.org/en -US/Add-ons/Overlay_Extensions),[Bootstrapped](https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions)或[Add-on SDK](https://developer.mozilla .org/en-US/Add-ons/SDK))以及您想要代碼執行的操作。 – Makyen 2014-09-24 23:34:08
我正在遵循附加SDK的步驟來構建擴展。 – sidd 2014-09-25 04:28:37