我使用下面的HTML代码段来显示文本,但无法在Internet Explorer 8版本中执行此操作。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.10.2.js"></script>
<script src="jquery-ui-1.8.20.js"></script>
</head>
<body>
<div>
<pre id="test">
</pre>
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#test").html("WELCOME\nHello World")
});
</script>
</body>
</html>
此代码段在IE的最新版本中正常运行,但“ \ n ”在IE8版本中无效。怎么解决这个?提前谢谢。
答案 0 :(得分:2)
尝试更正确的DOM操作:
document.getElementById("test")
.appendChild(document.createTextNode("WELCOME\nhelloworld"));
它应该有用。
,您可以使用outerHTML
在IE中强制渲染:
var el = document.getElementById("test")
if (el.tagName == "PRE" && "outerHTML" in el) { // check `outerHTML` exists (it's not in Firefox)
var outer = el.outerHTML;
var preservedAttrs = outer.substring(0, outer.indexOf('>') + 1);
el.outerHTML = preservedAttrs + str + "</PRE>";
}
else {
el.innerHTML = str;
}
另一种方式是使用nodeValue
来保留IE预处理中的文字:
document.getElementById('test').firstChild.nodeValue = "WELCOME\nhelloworld";
答案 1 :(得分:1)
为确保与IE 8的兼容性,请尝试使用\ r \ n而不是仅使用\ n
答案 2 :(得分:1)
在所有情况下,您应该将\n
替换为<br/>
,因为您要提交HTML而不是文字。 \n
应该在所有浏览器中都存在问题。
答案 3 :(得分:-1)
\r\n
是Windows换行符。 \n
适用于linux。
话虽如此,如果您打算使用它将文本分解为呈现的HTML页面中的另一行,\r\n
将无效。为此,您应该使用<br/>
。