0

IE678で pre の innerHTML を処理する方法を誰が教えてくれます か? br の使い方は知っていますが、インデントはどうすればいいですか?

私のHTML

<div id="box">
    <pre id="code">

       var a = "before";
       function b(){
           alert(a);
       }

    </pre>
</div>

私のJS

<script>
    var pre = document.getElementById("code");
    var str = pre.innerHTML;
    var newstr = str.replace("before", "after").replace(/\n/ig, "<br />");
    pre.innerHTML = newstr;
</script>

ページの正しい結果:

var a = "after";
function b(){
    alert(a);    //note the indentation before alert 
}

IE678のページのエラー結果:

var a = "after"; 
function b(){ 
alert(a);        //indentation is disappeared......
}
4

1 に答える 1

0

申し訳ありませんが、JavaScript を使用して pre のテキストを変更し、それを台無しにするのを見ませんでした。できることは次のとおりです。

    var pre = document.getElementById("code");
    var str = (pre.innerText) ? pre.innerText : pre.textContent;
    var newstr = str.replace("before", "after");//.replace(/\n/ig, "<br />");
    if(pre.textContent){pre.textContent = newstr};
    if(pre.innerText){pre.innerText = newstr};
于 2012-12-24T02:44:14.120 に答える