Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension 跨浏览器扩展开发和外部网站:最佳实践_Google Chrome Extension_Cross Browser_Firefox Addon_Browser Extension - Fatal编程技术网

Google chrome extension 跨浏览器扩展开发和外部网站:最佳实践

Google chrome extension 跨浏览器扩展开发和外部网站:最佳实践,google-chrome-extension,cross-browser,firefox-addon,browser-extension,Google Chrome Extension,Cross Browser,Firefox Addon,Browser Extension,我们目前正在开发一个Chrome浏览器扩展,它将我们的内容和控件插入特定的外部网站,供用户通过Chrome的“内容脚本”沙箱进行交互。我们让它工作得很好。然而,我们有两个关切: 不用说,我们在很大程度上依赖于这些外部网站中的HTML结构和DOM ID,在这些网站中我们插入自己的控件和内容。因此,有时网站会改变周围的小事情,我们能够快速做出反应。问题是:我们有多脆弱?外部网站对这些DOM ID和HTML结构具有与我们相同的JS依赖性。我们认为,除非对网站进行全面的改革,否则他们将不愿意对周围的事物

我们目前正在开发一个Chrome浏览器扩展,它将我们的内容和控件插入特定的外部网站,供用户通过Chrome的“内容脚本”沙箱进行交互。我们让它工作得很好。然而,我们有两个关切:

  • 不用说,我们在很大程度上依赖于这些外部网站中的HTML结构和DOM ID,在这些网站中我们插入自己的控件和内容。因此,有时网站会改变周围的小事情,我们能够快速做出反应。问题是:我们有多脆弱?外部网站对这些DOM ID和HTML结构具有与我们相同的JS依赖性。我们认为,除非对网站进行全面的改革,否则他们将不愿意对周围的事物进行重大的改变。想法

  • 当我们继续扩充我们的Chrome浏览器扩展时,我们正尽可能避免本地ChromeAPI调用。然而,当我们从内容脚本开发转移到Chrome的“后台”时,我们发现很有可能不得不求助于本机Chrome API调用——特别是在后台和内容脚本之间发送消息时。我们现在正在抽象Chrome调用,并计划用Firefox API替换它们。除了这一标准实践之外,为了尽快转向Firefox,有没有办法减轻或消除将Chrome扩展修改为Firefox的影响?换句话说,除了常规的软件开发最佳实践之外,是否有特定于开发跨浏览器扩展的最佳实践

  • 非常感谢您的想法和链接

  • 当您在网站中集成得太紧密时,您的扩展(或网站)可能会因冲突(与其他扩展)而中断。尽量减少对网页特定结构的依赖性,并尽可能提供回退。
    跟踪相关元素并检查它们是否仍然存在于文档中(使用(自动)(集成)测试)
  • 在单独的模块中抽象出特定于平台的细节,并使所有方法异步化。在异步方法中使用同步(扩展)API很容易,但反过来就不行了。
    有些API实际上是特定于平台的。与其为这些API编写抽象,不如开发提供所需功能的特定于平台的模块

  • 如果您想了解有关我的2c浏览器扩展测试的更多信息,请参阅。

    我认为最佳实践适用于所有人。尽可能多地延迟加载内容。保持低内存。等等基本的东西