谁能告诉我如何在 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......
}
答案 0 :(得分: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};