如何将 Chrome 扩展移植到另一个 Web 浏览器
How to port a Chrome extension to another Web Browsers
我想知道在另一个浏览器上引入 Chrome 扩展的最佳方法,使用 Crossbrowser,重新编码不是一个选项,因为它非常大。
这里的论点是基于扩展的类型,但在大多数情况下,人们无法将扩展从一个浏览器转移到另一个浏览器。
要在这里回答这个问题,您需要指定您的扩展是关于什么的,如果它只与修改某些页面(如 userscripts/userstyles)、扩展浏览器的功能或其他东西有关,因为这确实在学科。
但是,有一些可移植性说明可以帮助您简化此过程:
- Don't write browser specific code. In some modern browsers you're
able to use HTML5 features, like Web SQL Database API. It is
difficult to emulate such behaviour on IE, for instance.
- Keep your JavaScript modular; don't use vendor specific JavaScript
methods, and your code will be portable and will not rely on
TraceMonkey or V8;
- Separate HTML from CSS and Javascript, don't make your code dirty
and complicated.
希望这对您有所帮助 :)
移植 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。* 我尝试过的 API:
http://www.winbeta.org/news/new-microsoft-edge-browser-can-use-chrome-and-firefox-extensions
希望几个月后这一切都能在生产中发挥作用。当然你的代码应该仍然是跨浏览器的(这里的另一个答案有一些提示)并且这个答案涵盖了对特殊扩展的支持 API.
我创建这个库是为了让跨浏览器的方式编写一个代码,可以在两个浏览器中工作 FF/Chrome。但它基于承诺行为(FF 方式)。
所以这对那些开始编写新扩展的人会有帮助。在你的情况下,你需要重写所有回调行为以承诺行为,但在完成之后,代码会更清晰。
https://github.com/lawlietmester/webextension
请记住,某些 APIs 在 FF 和 Chrome 中具有完全不同的实现,例如 Proxy API(不是 Proxy 对象)。
我想知道在另一个浏览器上引入 Chrome 扩展的最佳方法,使用 Crossbrowser,重新编码不是一个选项,因为它非常大。
这里的论点是基于扩展的类型,但在大多数情况下,人们无法将扩展从一个浏览器转移到另一个浏览器。 要在这里回答这个问题,您需要指定您的扩展是关于什么的,如果它只与修改某些页面(如 userscripts/userstyles)、扩展浏览器的功能或其他东西有关,因为这确实在学科。 但是,有一些可移植性说明可以帮助您简化此过程:
- Don't write browser specific code. In some modern browsers you're able to use HTML5 features, like Web SQL Database API. It is difficult to emulate such behaviour on IE, for instance.
- Keep your JavaScript modular; don't use vendor specific JavaScript methods, and your code will be portable and will not rely on TraceMonkey or V8;
- Separate HTML from CSS and Javascript, don't make your code dirty and complicated.
希望这对您有所帮助 :)
移植 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。* 我尝试过的 API: http://www.winbeta.org/news/new-microsoft-edge-browser-can-use-chrome-and-firefox-extensions
希望几个月后这一切都能在生产中发挥作用。当然你的代码应该仍然是跨浏览器的(这里的另一个答案有一些提示)并且这个答案涵盖了对特殊扩展的支持 API.
我创建这个库是为了让跨浏览器的方式编写一个代码,可以在两个浏览器中工作 FF/Chrome。但它基于承诺行为(FF 方式)。 所以这对那些开始编写新扩展的人会有帮助。在你的情况下,你需要重写所有回调行为以承诺行为,但在完成之后,代码会更清晰。
https://github.com/lawlietmester/webextension
请记住,某些 APIs 在 FF 和 Chrome 中具有完全不同的实现,例如 Proxy API(不是 Proxy 对象)。