我已经为基于云的产品之一的铬插件工作。对于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. Chrome扩展 - 实施频道
- 2. 实施内联扩展
- 3. 实施
- 4. 实施
- 5. 实施`Array`&`ArraySlice`扩展与协议代替
- 6. Firefox:插件与扩展?
- 7. Firefox插件vs.扩展与插件
- 8. 与实施OneSignal Corna SDK
- 9. 与joomla实施BBC gelui 3.0
- 10. 实施mat2gray OpenCV中与Python
- 11. 与CUDA的MySQL实施
- 12. 实施request.postAsync与蓝鸟
- 13. 爪哇 - 麻烦与实施
- 14. 实施与<T>
- 15. 问题与实施Adwhirl
- 16. 实施PartialEq与从类型
- 17. AJAX实施与下拉
- 18. 实施Uploadify与Zend框架
- 19. 如何实施Firefox的通知?
- 20. 实施促进
- 21. 实施NSOutlineView /每
- 22. 实施ListFragment
- 23. 实施字典
- 24. 实施Facepile
- 25. UnitOfWork的实施
- 26. Saferpay实施
- 27. 实施远程()
- 28. 实施Class.magic_class_method
- 29. 实施Sequentialfs
- 30. 实施IntSetLIst
更具体地说,当我将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