如何将Chrome扩展程序移植到其他Web浏览器

时间:2015-09-22 08:38:53

标签: google-chrome-extension cross-browser firefox-addon safari-extension microsoft-edge-extension

我想知道在其他浏览器上使用Chrome扩展程序的最佳方法,使用Crossbrowser,重新编码不是一个非常大的选项。

3 个答案:

答案 0 :(得分:2)

移植Chrome扩展程序的最佳方法是查看WebExtension: https://wiki.mozilla.org/WebExtensions

https://developer.mozilla.org/en-US/Add-ons/WebExtensions

Firefox已经开始支持它了: https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/

并且Microsoft Edge也承诺支持chrome API并且已经支持一些chrome。* apis我尝试过: http://www.winbeta.org/news/new-microsoft-edge-browser-can-use-chrome-and-firefox-extensions

希望在几个月内,这一切都将在生产中发挥作用。当然你的代码应该仍然是跨浏览器(这里的另一个答案有一些提示),这个答案涵盖了对特殊扩展API的支持。

答案 1 :(得分:0)

此处的参数基于扩展的类型,但在大多数情况下,并非人们可以将扩展从一个浏览器转移到另一个浏览器。 要回答这里的论点,你需要指定你的扩展是什么,如果它只与修改一些页面(如userscripts / userstyles),扩展浏览器和#39;功能,或其他东西,因为这确实在主题上发挥作用。 但是,有一些可移植性说明可以帮助您简化此过程:

  
      
  1. 不要编写特定于浏览器的代码。在一些现代浏览器中你是   能够使用HTML5功能,如Web SQL Database API。它是   例如,很难在IE上模仿这种行为。
  2.   
  3. 保持JavaScript模块化;不要使用供应商特定的JavaScript   方法,您的代码将是可移植的,不会依赖   TraceMonkey或V8;
  4.   
  5. 将CSS与CSS和Javascript分开,不要让你的代码变脏   而且很复杂。
  6.   

希望这有帮助:)

答案 2 :(得分:0)

我创建了这个库,使用crossbrowser方式编写一个可以在FF / Chrome中运行的代码。但它基于承诺行为(FF方式)。 因此,对于那些开始编写新扩展的人来说会很有帮助。在您的情况下,您需要重写所有回调行为以承诺行为,但在完成后,代码将更加清晰。

https://github.com/lawlietmester/webextension

请注意,某些API在FF和Chrome中的实现方式完全不同,例如Proxy API(非Proxy对象)。