0

CR とタブ (コードが var shtmlにあるとしましょう) を含むテキストを、ASCII 文字を失うことなく 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;

ここに画像の説明を入力

私が使用する場合。innerTextの場合、コード (shtml) は Firefox で解釈されます。私が使用する場合。textContentコード (shtml) は ASCII 文字なしで表示されます。jQuery 。text()は .textContent と同じです。

4

1 に答える 1

1

の DOM インターフェイス ( HTMLTextAreaElement ) にvalueプロパティがある<input>ように、 このプロパティを に設定したいようです。<textarea>shtml

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

デモ


内部に読み込まれるページ<iframe>MIMEtext/plainを作成します。これは、たとえば、空を取得するか、 srcを に.txt設定することによって実行できます。次に、次のことができます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>を作成し、それぞれまたはテキスト ノードとして<iframe>配置します。shtml
于 2013-05-30T15:09:33.167 に答える