Показать всю HTML документацию в рамку - PullRequest
0 голосов
/ 14 сентября 2009

У меня есть весь HTML-документ, содержащийся в строковой переменной javascript, и мне нужно отобразить его в части моей страницы Должен ли я использовать кадры? Как это сделать?

Ответы [ 3 ]

3 голосов
/ 14 сентября 2009

с фреймом:

<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);
0 голосов
/ 14 сентября 2009
myHtmlString = 'some stuff'; // whatever your big html string is
el = document.getElementById("myTarget"); // where you'd like the html to end up
el.innerHTML = myHtmlString; // set the HTML of el to be your big string.
0 голосов
/ 14 сентября 2009
document.getElementById('container').innerHTML = string;

Это загрузит содержимое строки внутри элемента (возможно, div) с идентификатором «container».

...