Ita*_*man 14 javascript internet-explorer pre
在IE中,当我将文本插入<pre>
标记时,新行被忽略:
<pre id="putItHere"></pre>
<script>
function putText() {
document.getElementById("putItHere").innerHTML = "first line\nsecond line";
}
</script>
Run Code Online (Sandbox Code Playgroud)
使用\r\n
而不是普通\n
不起作用.
<br/>
确实有效但在FF中插入了一个额外的空白行,这对我来说是不可接受的.
spl*_*tne 12
这些quirksmode.org错误报告和有关Internet Explorer的innerHTML行为的评论可以帮助:
" IE将HTML规范化应用于分配给innerHTML属性的数据.这会导致在应该保留格式的元素中显示空格的错误,例如<pre>和<textarea>. "
这在IE中有用吗?
document.getElementById("putItHere")
.appendChild(document.createTextNode("first line\nsecond line"));
Run Code Online (Sandbox Code Playgroud)
我用Firefox测试它,它的工作原理.:-)
可以在已接受答案中链接到的页面中找到解决方法.为了便于使用,它是:
if (elem.tagName == "PRE" && "outerHTML" in elem)
{
elem.outerHTML = "<PRE>" + str + "</PRE>";
}
else
{
elem.innerHTML = str;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22294 次 |
最近记录: |