Я один из разработчиков надстройки TryAgain для Firefox, которая отображает пользовательскую страницу ошибки, когда веб-сайт не загружается. По сути, он заменяет netError.xhtml
Firefox на настроенную версию.
Чтобы выполнить 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()
, обратитесь к моему предыдущему вопросу.