Я один из разработчиков TryAgain , дополнения Firefox, которое отображает пользовательскую страницу с ошибкой, когда веб-сайт не загружается.По сути, он заменяет Firefox netError.xhtml
настроенной версией.
Однако я столкнулся с некоторыми довольно терминальными проблемами совместимости между 3.0. * - 3.6. * И Fx4b5.(Запись в netError.dtd была переименована, что вызвало ошибку синтаксического анализа XML в одной или другой версии.)
Чтобы исправить это, я решил использовать расширение динамически изменить страницу, вместо полной замены.Одним из элементов, который мне нужно добавить к netError.xhtml
в Fx3, является <xul:button>
.Однако, добавив его со следующим кодом, на экране ничего не появляется:
var div = document.getElementById("errorContent");
var btn = document.createElement("xul:button");
btn.setAttribute("label", "Hello world");
btn.setAttribute("oncommand", "alert('Hello world!');");
div.appendChild(btn);
Я вижу, что в Центре разработчиков Mozilla есть эта заметка :
Реализация createElement в Gecko не соответствует спецификации DOM для документов XUL и XHTML: localName и namespaceURI не имеют значения null для созданного элемента.Подробности смотрите в bug 280692 .
Что это влечет за собой, и как я могу это исправить?
Кроме того, как я могу выполнить событие oncommand
через JavaScript?