Получить документ HTML перед document.write (); - PullRequest
0 голосов
/ 01 января 2019

Я хотел бы иметь возможность получить HTML-код страницы в виде строки до загрузки страницы и вызова document.write(); с использованием моего расширения javascript.Можно ли получить часть или весь HTML-код страницы перед ее загрузкой?Спасибо за помощь

Ответы [ 3 ]

0 голосов
/ 01 января 2019

Попробуйте загрузить страницу, используя jQuery ajax

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "page.html",
        data: { },
        success: function(data){
            // in data is returned page.html html code
        }
    });
});

document.documentElement.innerHTML или document.documentElement.outerHTML сохранит код страницы, загруженный только перед этим сценарием

0 голосов
/ 01 января 2019

document.write имеет место перед document. $ (Document) .ready () или document.onload.Document.write после события onload (сигнал, загруженный страницей) перезаписывает документ.Поэтому для установки частей страницы с использованием javascript лучше всего использовать getElementById и писать в него.

В файле document.write доступны только те вещи, которые находятся над ним в файле документа, и это не функция документа, а обычная реализация.

IE

<p id="line1">1st line of html output</p>
<script>
alert(document.getElementById("line1").innerText);
</script>
<script>
alert(document.getElementById("lastline").innerText);
</script>
<p id="lastline">last line of html output</p>

Обычно приводит к появлению окна предупреждения с «1-й строкой вывода html»

За ним следует ошибка в консоли ... Uncaught TypeError: Невозможно прочитать свойство 'innerText' из null


Альтернативным решением является отображение: ни одной страницы.Измените страницу, а затем используйте эффект транзакции, чтобы страница отображалась.Который дает пользователю такой же внешний вид.

0 голосов
/ 01 января 2019

Попробуйте это:

document.documentElement.innerHTML

или что:

document.documentElement.outerHTML
...