Javascript 如何处理IE678中pre的innerHTML,缩进在哪里?

Javascript 如何处理IE678中pre的innerHTML,缩进在哪里?,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,谁能告诉我如何在IE678中处理pre的innerHTML? 我知道如何使用br,但如何使用缩进 我的HTML: <div id="box"> <pre id="code"> var a = "before"; function b(){ alert(a); } </pre> </div> <script> var pre = document

谁能告诉我如何在IE678中处理pre的innerHTML? 我知道如何使用br,但如何使用缩进

我的HTML

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

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

    </pre>
</div>
<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);        //indentation is disappeared......
}
IE678第页的错误结果

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

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

    </pre>
</div>
<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);        //indentation is disappeared......
}

很抱歉,没有看到您使用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};
var pre=document.getElementById(“代码”);
var str=(pre.innerText)?pre.innerText:pre.textContent;
var newstr=str.replace(“之前”、“之后”);/。替换(/\n/ig,“
”); if(pre.textContent){pre.textContent=newstr}; if(pre.innerText){pre.innerText=newstr};
格式化html页面中的代码并不是那么容易。也许看看这个,他们提到了PrettypritJavaScript库。注意,我已经在IE8中打开了pre标记,ident可以工作,而不必添加br.var newstr=str.replace(“before”,“before”);这样做吧,你的代码就像我在第一次回复中说的那样已经失效了;如果您想让它变得复杂,请使用javascript库。谁说字符串中的html标记应该呈现为html或文本?什么时候是文本,什么时候是html?现在我该怎么办?如果我想在IE678中显示包含html标记的正确格式?不确定这是否有帮助:您如何知道标记是否需要呈现?例如,在以下示例中,是否要将其呈现或显示为文本:var a=“{%1}”;