如何移植一个Chrome扩展到另一个Web浏览器



我想知道在另一个浏览器上带来Chrome扩展的最佳方法,使用跨浏览器,重新编码不是一个选项,因为它非常大。

移植chrome扩展的最佳方法是查看webeextension: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。*我尝试过:http://www.winbeta.org/news/new-microsoft-edge-browser-can-use-chrome-and-firefox-extensions

希望在几个月内这将在生产中全部工作。当然,你的代码仍然应该是跨浏览器的(这里有一些技巧),这个答案涵盖了对特殊扩展API的支持。

这里的参数是基于扩展的类型,但在大多数情况下,人们将无法将扩展从一个浏览器传输到另一个浏览器。要回答这里的争论,您需要指定您的扩展是关于什么,如果它只与修改一些页面(如userscripts/userstyles),扩展浏览器的功能或其他东西有关,因为这确实在主题中起作用。但是,有一些可移植性注意事项可以帮助您简化此过程:

    不要编写特定于浏览器的代码。在一些现代浏览器中能够使用HTML5的功能,如Web SQL数据库API。它是例如,很难在IE上模拟这种行为。
  1. 保持JavaScript的模块化;不要使用特定于供应商的JavaScript方法,您的代码将是可移植的,并且不会依赖于TraceMonkey或V8;
  2. 把HTML从CSS和Javascript中分离出来,不要把你的代码弄脏而复杂。

希望这对你有帮助

我创建了这个库,使跨浏览器的方式来编写一个代码,将在FF/Chrome工作。但它基于承诺行为(FF方式)。因此,对于那些开始编写新扩展的人来说,这将是有帮助的。在你的情况下,你需要重写所有的回调行为为承诺行为,但在那之后,代码会更干净。

https://github.com/lawlietmester/webextension

请记住,有些API在FF和Chrome中有完全不同的实现,如代理API(不是代理对象)。

相关内容

  • 没有找到相关文章

最新更新