>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Подмена about:neterror http://forum.mozilla-russia.org/viewtopic.php?id=42251 |
Elena > 11-12-2009 21:21:34 |
День добрый! только вот загвоздка в том, что после загрузки стандартной формы документ имеет тип application/xhtml+xml соответственно, вижу несколько вариантов решения проблемы |
Infocatcher > 12-12-2009 00:55:34 |
Что мешает заменить «.innerHTML=» на DOM-методы или на https://developer.mozilla.org/en/Parsin … _DOM_trees ?
|
vladmir > 12-12-2009 23:22:52 |
Elena
А я в Симанки давно уже добавил к стандартным фразам в netError.dtd свои ссылки некоторые постоянные, чтобы они чаще перед глазами оказывались. 12-12-2009 23:27:12 |
Elena > 13-12-2009 16:55:36 |
Infocatcher пишет
Банальное незнание как это сделать |
Infocatcher > 14-12-2009 00:21:43 |
Эммм... не совсем понимаю, что нужно получить. Вот я открываю about:neterror и запускаю из адресной строки: Выделить код Код:javascript: document.documentElement.innerHTML = "<strong>some text</strong>"; void 0; Все работает. Еще раз открываю about:neterror, открываю консоль ошибок (в окне, это важно) и выполняю: Выделить код Код:top.opener.content.document.documentElement.innerHTML = "<strong>some text</strong>"; И тоже работает. Стало быть, или при работе из расширения присутствует какая-то помеха, или присваивается что-то не то. Выделить код Код:var win = new XPCNativeWrapper(top.opener.content, "document"); var doc = new XPCNativeWrapper(win.document, "documentElement"); var de = new XPCNativeWrapper(doc.documentElement, "innerHTML"); de.innerHTML = "<strong>some text</strong>" (Впрочем, не уверен, что обертки положено создавать именно так – начиная с Firefox 1.5 все должно заворачиваться само.) |
Elena > 14-12-2009 11:41:17 |
Infocatcher пишет
нужно изменить текст. |
Infocatcher > 14-12-2009 15:52:22 |
В консоли ошибок при этом что-нибудь пишет? Вообще, судя по Выделить код Код:Ошибка системы безопасности: содержимое «about:neterror» не имеет права загружать chrome://global/skin/icons/warning-16.png или ссылаться на него. , возможно, нужно ссылаться на resource:// или добавлять в chrome.manifest «contentaccessible=yes». |
Elena > 14-12-2009 16:52:26 |
Infocatcher пишет
неа ничего. contentaccessible=yes прописано. Проблему вроде решила переписав чуток html-ку. Но вопрос все равно остался - почему в одном случае отображется корректно, а в другом стиль разъезжается... |
Skarm > 14-12-2009 17:05:42 |
Elena Возможно Вам понравиться не придумывать велосипед , а установить дополнение TryAgain? https://addons.mozilla.org/en-US/firefox/addon/2462 |
Infocatcher > 14-12-2009 19:00:25 |
Видимо, innerHTML как-то не так добавляет стили. там же, в общем-то, XML + xmlns="http://www.w3.org/1999/xhtml", а не HTML. По крайней мере, вот так у меня не работает (из консоли ошибок): Выделить код Код:top.opener.content.document.documentElement.innerHTML = '<head><style type="text/css"> * { color: green !important; } </style></head><body><strong>some text</strong></body>'; А вот так уже все нормально: Выделить код Код:with(top.opener.content.document) { var de = documentElement; var h = createElement("head"); var s = createElement("style"); s.type = "text/css"; s.appendChild(createTextNode("strong { color: green !important; }")); h.appendChild(s); var b = createElement("body"); b.innerHTML = "<strong>some text</strong>"; de.innerHTML = ""; de.appendChild(h); de.appendChild(b); } |
tpb12 > 12-01-2010 16:09:09 |
Всем привет! Вот ломаю голову над такой задачей: осуществил перехват about:neterror с помощью подмены файла neterror.xhtml (и еще двух для ошибок типа Untrusted connection) в соответствующих jar-файлах. Все вроде бы хорошо работает, не устраивает одно - не хватает прав для вызова функции через XPCOM, попытка установить права тоже ни к чему не приводят. В связи с этим у меня вопрос как сделать перехват по другому, например, через extension, или установить права. Заранее спасибо. |
Elena > 16-01-2010 12:15:00 |
tpb12 пишет
не уверена что правильно поняла вопрос, но я прост отлавливаю загрузку страницы, смотрю какой url загрузился в адресной строке и в зависимости от этого выполняю те или иные действия |