Я разрабатываю свое первое расширение Firefox и для этого мне нужно получить полный исходный код текущей страницы. Как я могу это сделать с помощью XUL?Расширения Firefox и XUL: получить исходный код страницы
ответ
действительно похоже, что нет никакого способа, чтобы получить "все исходный код". Вы можете использовать
document.documentElement.innerHTML
Чтобы получить внутреннийHTML верхнего элемента (обычно html). Если у Вас есть сообщение об ошибке PHP как
<h3>fatal error</h3>
segfault
<html>
<head>
<title>bla</title>
<script type="text/javascript">
alert(document.documentElement.innerHTML);
</script>
</head>
<body>
</body>
</html>
innerHTML будет
<head>
<title>bla</title></head><body><h3>fatal error</h3>
segfault
<script type="text/javascript">
alert(document.documentElement.innerHTML);
</script></body>
но сообщение об ошибке по-прежнему сохраняет
редактирования: documentElement описано здесь: https://developer.mozilla.org/en/DOM/document.documentElement
Может быть, вы можете получить его с помощью DOM, используя
источник уаг = document.getElementsByTagName ("HTML");
и принести источник с помощью DOMParser
getElementsByTagName (примечание: элементы) –
Вы можете получить URL-адрес с var URL = document.location.href
и перейти к "view-source:"+URL
.
Теперь вы можете получить исходный код весь (ViewSource это идентификатор тела):
var code = document.getElementById('viewsource').innerHTML;
Проблема заключается в том, что исходный код отформатирован. Поэтому вы должны запустить strip_tags() и htmlspecialchars_decode(), чтобы исправить это.
Например, строка 1 должен быть тип документа и линия 2 должна выглядеть следующим образом:
<<span class="start-tag">HTML</span>>
Таким образом, после strip_tags() становится:
<HTML>
И после того, как htmlspecialchars_decode() мы, наконец, получить ожидаемый результат:
<HTML>
Код не переходит к парсер DOM, поэтому y ou также может просматривать недопустимый HTML.
Хммм ... звучит довольно хорошо. Является ли весь код завернутым в элемент с идентификатором 'viewource' или почему вы так делаете? И что вы подразумеваете под «отформатированным»? Удерживаются ли сущности? – Franz
Подумайте об этом как о нормальном HTML-коде. Идентификатор тела - это viewource. Я добавил пример, как это выглядит. Я надеюсь, что у вас есть идеи, как перейти на эту страницу (например, вы можете сделать это со скрытым iframe). – Sagi
Или вы могли бы просто использовать '.textContent' вместо этого. –
Вам понадобится объект xul browser для загрузки содержимого.
Загрузите версию страницы «view-source:» в объект браузера, как это делает меню «View Page Source». См. Функцию viewSource() в chrome://global/content/viewSource.js
. Эта функция может загружаться из кеша или нет.
После загрузки контента, первоисточником определяется по формуле:
var source = browser.contentDocument.getElementById('viewsource').textContent;
сериализовать DOM Document
Этот метод не получит оригинал, но может быть полезно для некоторых читателей.
Вы можете сериализовать объект документа в строку. См. Serializing DOM trees to strings в MDC. Возможно, вам придется использовать альтернативный метод создания экземпляра в своем расширении.
В этой статье рассказывается о документах XML, но также работает над любым HTML DOMDocument.
var serializer = new XMLSerializer();
var source = serializer.serializeToString(document);
Это даже работает на веб-странице или в консоли firebug.
Первая часть ответа Саги, но вместо этого используется document.getElementById('viewsource').textContent
.
Больше в соответствии с ответом Лаклана, но здесь обсуждается внутренняя часть, которая углубляется в глубину, переходя в код Cpp.
http://www.mail-archive.com/[email protected]/msg05391.html
, а затем следуют ответы в нижней части.
- 1. Как скрыть код расширения firefox
- 2. firefox просмотреть исходный код
- 3. Значение POST и получить исходный код страницы
- 4. Исходный код для Firefox WebDriver (расширение Firefox)?
- 5. Могу ли я получить текущий исходный код страницы из расширения Firefox?
- 6. У браузера Firefox xul нет заголовка страницы
- 7. Текущая информация об obtaing Исходный код расширения Firefox
- 8. Где находится XUL страницы «Восстановить сеанс» Firefox?
- 9. обходя javascript, чтобы получить исходный код страницы
- 10. Исходный код макета страницы
- 11. Как получить исходный код страницы из WebView?
- 12. Fetching исходный код страницы
- 13. Получить исходный код HTML с веб-страницы
- 14. обновления и получить исходный код
- 15. Как получить исходный код HTML страницы
- 16. Получить исходный код страницы с WWW :: Selenium?
- 17. получить html исходный код
- 18. Вызов Init из XUL после загрузки страницы (надстройка Firefox)
- 19. Получить отличный исходный код
- 20. Расширения Firefox: пользовательский автозаполнение
- 21. Чтение веб-страниц cookie из расширения Firefox (XUL)
- 22. XUL - firefox последний загруженный файл
- 23. находкой исходный код страницы с использованием селена
- 24. Как получить исходный код страницы, а не текущий контент?
- 25. Как получить исходный код веб-страницы на C++?
- 26. Понимание структуры расширения Firefox
- 27. Показать весь исходный код страницы
- 28. Скрыть исходный код веб-страницы
- 29. Получить исходный код затем POST
- 30. на исходный код страницы
Возможно, это то, что я ищу. Однако я не понимаю код примера, который вы опубликовали. Предполагается ли, что второй блок является текстом, напечатанным с помощью 'alert' в первом блоке? Если да, то почему сообщение об ошибке неожиданно появляется внутри тега body? – Franz
yep, вторым кодом был предупрежден код. Возможно, это исправление кода Firefox. Просто скопируйте первый блок в пустой html-файл и попробуйте его :-) –
Это не полный источник. Как вы отметили, все, что не находится между '' и' ', не включается. Ответ Лаклана представляется гораздо лучшим решением. – MatrixFrog