2

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

4

3 回答 3

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。* api 我尝试过:http: //www.winbeta.org/news/new-microsoft-edge-browser-can-use-chrome-and-火狐扩展

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

于 2015-09-22T12:50:04.227 回答
0

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

https://github.com/lawlietmester/webextension

请记住,某些 API 在 FF 和 Chrome 中具有完全不同的实现方式,例如 Proxy API(不是 Proxy 对象)。

于 2017-06-11T13:33:56.043 回答
0

此处的论点基于扩展程序的类型,但在大多数情况下,无法将扩展程序从一个浏览器传输到另一个浏览器。要回答这里的论点,您需要指定您的扩展是关于什么的,如果它只与修改某些页面(如用户脚本/用户样式)、扩展浏览器的功能或其他内容有关,因为这确实会在主题上有所不同。但是,有一些可移植性说明可以帮助您简化此过程:

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

希望这可以帮助 :)

于 2015-09-22T08:44:26.870 回答