У меня возникла эта проблема во время разработки моего собственного аддона, но я получаю то же самое с примером reddit, поэтому я буду использовать это для простоты.
Использование точного кода из найденного примера здесь , вот что происходит.
Пример Reddit
Этот пример надстройки создает панель, содержащую мобильную версию Reddit.Когда пользователь нажимает на заголовок статьи на панели, надстройка открывает связанный рассказ на новой вкладке в главном окне браузера.
Для этого надстройке необходимо запустить контент.скрипт в контексте страницы Reddit, который перехватывает щелчки мышью по каждой ссылке на заголовок и выбирает целевой URL ссылки.Затем сценарию содержимого необходимо отправить URL-адрес к сценарию надстройки.
main.js:
var data = require("self").data;
var reddit_panel = require("panel").Panel({
width: 240,
height: 320,
contentURL: "http://www.reddit.com/.mobile?keep_extension=True",
contentScriptFile: [data.url("jquery-1.4.4.min.js"),
data.url("panel.js")]
});
reddit_panel.port.on("click", function(url) {
require("tabs").open(url);
});
require("widget").Widget({
id: "open-reddit-btn",
label: "Reddit",
contentURL: "http://www.reddit.com/static/favicon.ico",
panel: reddit_panel
});
panel.js:
$(window).click(function (event) {
var t = event.target;
// Don't intercept the click if it isn't on a link.
if (t.nodeName != "A")
return;
// Don't intercept the click if it was on one of the links in the header
// or next/previous footer, since those links should load in the panel itself.
if ($(t).parents('#header').length || $(t).parents('.nextprev').length)
return;
// Intercept the click, passing it to the addon, which will load it in a tab.
event.stopPropagation();
event.preventDefault();
self.port.emit('click', t.toString());
});
Значок отображается на панели, и при нажатии на него запускается панель.Если щелкнуть ссылку на панели, откроется ее на новой вкладке, как описано и ожидается.
При нажатии на ссылку «следующая страница» на вкладке будет получена следующая страница на панели - как и ожидалось.
Если щелкнуть ссылку на 2-й странице, она не открывается на вкладке, она открывается внутри панели.
Вот мое предположение: когда страница перезагружается внутри панели, она не перезагружает скриптуказано в contentScriptFile
.Кто-нибудь еще испытывает это?И есть ли обходной путь?
Я использую SDK 1.0 и FF 5.0
Вопрос, кросс-пост на форуме Аддона здесь