Я столкнулся с этой проблемой при работе над расширением. Я добавляю pageMod к странице на основе события готовности к табло, чтобы изменить содержимое страницы, но когда я перезагружаю страницу, рабочий, похоже, подключается еще раз, поэтому после 1 перезагрузки он загружает 2 рабочих для одного и того же URL-адреса (без фреймов), после 2 перезагрузок не загружают 3 рабочих и т.д. Вот исходный код, который я начал с (я разорвал его из больших блоков):pageMod есть рабочие несколько раз
mod = null;
tabs.on('ready', function(tab) {
mod = this.pageMod.PageMod({
include: ["*"],
contentScriptFile: ["resource://data/full_page.js"],
attachTo: ["top", "frame", "existing"],
onAttach: function(worker) {
Logger.log('---------> worker.url is ' + worker.url);
}
});
}
я был в состоянии исправить это несколько разрушив мода на каждое готовое событие, прикрепляя этот код в самом начале готового обработчика событий.
mod = null;
tabs.on('ready', function(tab) {
if (mod) {
mod.destroy();
}
mod = this.pageMod.PageMod({
include: ["*"],
contentScriptFile: ["resource://data/full_page.js"],
attachTo: ["top", "frame", "existing"],
onAttach: function(worker) {
Logger.log('---------> worker.url is ' + worker.url);
}
});
}
Однако, я все еще вижу, что двое рабочих привязываться после первой перезагрузки, три после второй, и т.д., я сделал, что мой слушатель был инициализирован только один раз. Кто-нибудь сталкивался с этим раньше? Я не использую его правильно? Спасибо! Luka
Это имеет смысл. Спасибо! – Lukich