Из моего опыта Лучшее решение - использовать класс адаптеров, который вызовет браузер api. После того, как вы сможете создать код, который будет работать в каждом браузере, используя правый адаптер.
Например, в фоновом скрипте у вас нет setTimeout/setInterval для firefox, но у вас есть его для chrome. Вы можете иметь такой код
core.js
this._browserAdapter.setTimeout(function(){...}, 1000);
ChromeAdapter.js
setTimeout: function (callback, time) {
return setTimeout(callback, time);
}
FirefoxAdapter.js
setTimeout: function(callback, time) {
var {setTimeout} = require("sdk/timers");
return setTimeout(callback, time);
},
Вы можете сделать все, используя этот способ, чтобы вы могли иметь более 90% общего кода.
Редактировать
Он будет работать на Firefox и Safari. Для IE это совершенно по-другому, но с новым microsoft EDGE я думаю, что будет возможно что-то подобное. Ждать и смотреть !
Потому что нет универсального решения, возможно? Кроме того, это, вероятно, вне темы здесь, как «Вопросы, предлагающие нам рекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебник или другой ресурс вне сайта» _ – Xan
Хорошо, вы правы. Тогда я закрываю его. – igorpavlov