Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как поучить скомпелированный код страницы? (https://javascript.ru/forum/misc/17466-kak-pouchit-skompelirovannyjj-kod-stranicy.html)

Petrov.I1969 20.05.2011 11:16

Как поучить скомпелированный код страницы?
 
Как получить скомпелированный код страницы, написанной на JavaScript в строковую переменную используюя функции JavaScript?

Когда нажимаю в браузере "Просмотр исходного когда страницы" отображаются скрипты, а мне нужно само содержимое страницы (т.е. именно то, что отображает браузер пользователю) запихнуть в строковую переменную, для дальнейшего анализа!

Спасибо большое за помощь!

nikita.mmf 20.05.2011 11:26

document.documentElement.innerHTML

Petrov.I1969 20.05.2011 11:27

Спасибо! Сейчас попробую!

Matre 20.05.2011 12:09

window.onload = function () {
	var code = document.createElement("DIV");
	code.appendChild(document.documentElement.cloneNode(true));
	code = code.innerHTML;
	alert(code);
};

subzey 20.05.2011 12:19

Matre,
А doctype? ;)

Matre 20.05.2011 12:47

window.onload = function () {
	var code = document.createElement("DIV"), doctype = document.doctype, dctext = "";
	code.appendChild(document.documentElement.cloneNode(true));
	code = code.innerHTML;
	if (doctype != null) {
		dctext = "<!DOCTYPE html";
		if (doctype.publicId)
			dctext += " PUBLIC \"" + doctype.publicId + "\" \"" + doctype.systemId + "\"";
		dctext += ">\n";
	}
	code = dctext + code;
	alert(code);
};

Petrov.I1969 20.05.2011 13:11

Попробывал эту функцию, она хорошо работает для просто документа, а для моего случая выводит сообщение об ошибке:
"Ошбика на странице"

Это вамый первый простой вариант, для функции в самом начале, для примеров функций ниже пишет ту же ошибку:

основная страница:

<html>
<frameset rows="*,40">
<frame src="http://ya.ru" name="frame1">
<frame src="Left.html" name="frame2">
</frameset>
</html>

Файл Left.html:
<html>
<body>

<script language="JavaScript">
function M_Get_Text(){
alert(parent.frame1.document.documentElement.inner HTML);
}
</script>
<form name="M_form">
<input type="button" name="bTextFrame1" value="Text" onClick="M_Get_Text();">
</form>

</body>
</html>

Matre 20.05.2011 14:18

Нельзя работать с документом с другого домена.

Petrov.I1969 20.05.2011 15:55

Т.е. на языке JavaScript нельзя написать функцию, которая смогла бы получить результат интерпретации браузером какой либо страницы?

Может быть тогда можно как-то вызвать функцию сохранения страницы c произвольным URL в текстовом виде? А потом считать содержимое этого файла в переменную и обработать?

Заранее спасибо!

Matre 20.05.2011 15:57

Только на JavaScript, не используя сторонних технологий — нет.


Часовой пояс GMT +3, время: 07:46.