Я один из разработчиков TryAgain, надстройки Firefox, которая отображает пользовательскую страницу с ошибкой, когда веб-сайт не загружается.По сути, он заменяет Firefox netError.xhtml
настроенной версией.
Чтобы выполнить JavaScript из кода расширения в netError.xhtml
, я добавил элемент XUL <command>
на страницу ошибки следующим образом:
var increment_btn = doc.
createElementNS(
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",
"xul:command"
);
increment_btn.setAttribute("id", "errorIncrement");
increment_btn.setAttribute("oncommand", "autoRetryThis();");
div.appendChild(increment_btn);
Всякий раз, когда нужно выполнить autoRetryThis()
, я просто запускаю doCommand()
для элемента.На моей тестовой машине это нормально работает под Firefox 2.0 через 4.0b10.Я получил следующий отчет о проблеме , однако:
Ошибка: компонент возвратил код ошибки: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMHTMLDocument.createElementNS]
Ошибка указывает на первую строку приведенного выше кода.
Если вам интересно, почему я решил создать элемент с помощью createElementNS()
, см. Мой предыдущий вопрос .