2013-05-30 3 views
0

Я хочу отображать текст с CR и вкладками (скажем, код находится в var shtml) в iframe без потери символов ASCII.Отображение неинтерпретированного HTML-кода в html iframe

<!--var shtml--> 
<HEAD> 
</HEAD> 
<BODY style="FONT-SIZE: 12.5pt"> 
    mmm 
</BODY> 

Мой IFrame

<iframe rows="5" cols="60" id="tahtml"> 
</iframe > 

Мои JS

document.getElementById('tahtml').textContent = shtml; //innerText = shtml; 

enter image description here

Если я использую. innerText, тогда код (shtml) интерпретируется в Firefox. Если я использую. textContent код (shtml) отображается с символами ASCII. jQuery. текст() доза такая же, как .textContent.

ответ

1

Так же, как <input>, интерфейс DOM <textarea> «s (HTMLTextAreaElement) имеет значение свойство, это выглядит, как вы хотите, чтобы установить это свойство shtml.

document.getElementById('tahtml').value = shtml; 

Demo


Для сделать MIME для страницы, загруженной в него text/plain. Это можно сделать, например, путем извлечения пустого .txt или установки src в data:text/pain,. После этого вы можете сделать следующее

// don't collapse whitespace, only needed to be done once 
ifrmDoc.documentElement.style.whiteSpace = 'pre'; 
// set text 
ifrmDoc.documentElement.innerHTML = shtml; 

Где

var ifrm = document.getElementById('tahtml'), 
    ifrmDoc = ifrm.contentDocument || ifrm.contentWindow.document; 

Конечно, вы также можете сделать это

  • писать все это как dataURI и передать его в качестве src
    ifrm.src = 'data:text/pain,' + window.encodeURIComponent(shtml);
  • добавляя текст с помощью с помощью методов DOM и текстовые узлы
    ifrmDoc.body.appendChild(ifrmDoc.createTextNode(shtml))
    (это будет по-прежнему требуют whiteSpace: pre;)
  • делает <textarea> или <pre> в вашем , в которую вы положили shtml в значение или текстового узла , соответственно.
+0

Извините за это, но я думал, что это проще с текстовым полем. У меня есть iframe. – Misi

+0

Пожалуйста, постарайтесь задать вопрос, на который вы действительно хотите ответить в будущем. –

Смежные вопросы