с фреймом:
<iframe id="myiframe"></iframe>
var frame= document.getElementById('myiframe');
var doc= frame.contentDocument? frame.contentDocument : frame.contentWindow.document; // IE compatibility
doc.open('text/html');
doc.write(documenthtml);
doc.close();
Или, если вы можете обрезать ненужные биты (как любой элемент DOCTYPE и ), вы можете просто написать innerHTML для любого элемента. Обычно обрабатывать [X] [HT] ML с помощью регулярных выражений или обработки строк - это действительно плохая идея, но если вы знаете , что тело всегда будет содержаться в точных строках ' ... 'и никогда не будет, например. любая последовательность 100 ’, скрытая в разделе комментариев или скрипта, может показаться безрезультатной.
Честно говоря, браузеры на данный момент настолько просты, что обычно даже позволяют вам записать целый HTML-документ в innerHTML для div, дополненный doctype и ‘’! Но это было бы немного непослушно:
<div id="mycontent"></div>
document.getElementById('mycontent').innerHTML= htmldocument;
Вот неприятный хак, объединяющий оба метода для извлечения содержимого тела без использования регулярных выражений:
<div id="mycontent"></div>
var frame= document.createElement('iframe');
frame.style.display= 'none';
document.body.appendChild(frame);
var doc= frame.contentDocument? frame.contentDocument : frame.contentWindow.document;
doc.open('text/html');
doc.write(documenthtml);
doc.close();
document.getElementById('mycontent').innerHTML= doc.body.innerHTML;
document.body.removeChild(frame);