回答

4

它取决于扩展的类型,但不是真的。要更清楚地回答你的问题,你需要指定你的扩展是关于什么:修改一些页面(比如userscripts/userstyles),扩展浏览器的功能,或者其他的东西。

有几个便携笔记,但是,可以帮助您简化这个过程:

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

为什么要关心IE兼容性?它不支持扩展。 – serg 2010-08-11 18:27:00

+6

它的确如此,但是采用了非常非常非常不寻常的方式。 – 2010-08-12 04:16:36

4

Apple provides some guidance关于如何将Chrome扩展程序转换为Safari,但是您要运行的问题是每个浏览器都有一组不同的允许扩展功能。即使使用Chrome浏览器到Safari浏览器,也有一些您可以在Chrome中执行的操作,而您无法在Safari中执行操作,反之亦然。

4

跳得有点迟。

我们公司 - 切片工厂(全面披露此处!)的确提供了浏览器扩展转换服务:http://gallery.extensionfactory.com/labs/conversion/ 在大多数情况下,您的Chrome扩展可以在FF和Safari中无缝工作。

该服务仍处于beta测试阶段,并且Firefox转换效果比Safari更好。 我不能完全透露我们的技术解决方案,但这是一个SO答案,我可以添加一些细节:我们已经重新开发了一个完整的JavaScript API堆栈,它模仿Safari和Firefox的大部分扩展API;在Firefox中,我们将基于JetChrome的工作。此外,我们有包装重新打包铬扩展添加我们的库和重写清单等。

除此之外,它主要是一些好主意,试验和错误,以及大量的开发时间。

举个例子: Safari 5.1刚刚推出了一个与Chrome的browser_action相对应的弹出窗口,但我们已经有了一个适用于以前版本的替代解决方案。 Firefox不支持HTML5 WebSQL,但我们有一个API。我们还提供了一种将webapps带到FF的方法,并且很快将其带到Safari。 目标是将Chrome API作为参考,并在所有其他浏览器上模拟它。

如果不推动我们的解决方案,我可能会补充说,在Safari和Firefox上全面覆盖Chrome API的时间可能是不值得的 - 除非您计划转换多个扩展。因此,对于一两个扩展,我建议尽可能使模块尽可能模块化,然后创建三个扩展 - 或尝试我们的服务!

+0

哦,对于IE浏览器有网页。我们使用他们作为我们的另一个产品作为'代孕':) – Stefano 2011-09-15 17:20:51

+0

只是尝试过你的服务,但可惜它没有奏效。 (ID:hcieonlgpadegedlcpdhndifhaeahajp,bkeiokdfjgnaglohebonlmpimnpinahd) – 2012-01-22 04:05:27

+0

@StefanSchmidt不幸总会有一些限制!第一个不起作用,因为他们在创建页面之前在页面中搜索元素。实际上,它真的很幸运。第二个在Firefox中转换并运行良好;由于不支持的图像格式,它不会在Safari中转换,我解决了这个问题,但由于Safari中的弹出窗口和页面之间的Cookie分离,它可能无法正常工作。如果您有进一步的兴趣,请通过页面底部的电子邮件与我联系! – Stefano 2012-01-22 14:43:21

相关问题