Javascript 新行字符“\";IE 8浏览器中不支持
我已经使用下面的HTML代码片段来显示文本,但在InternetExplorer8版本中无法这样做Javascript 新行字符“\";IE 8浏览器中不支持,javascript,jquery,html,internet-explorer,internet-explorer-8,Javascript,Jquery,Html,Internet Explorer,Internet Explorer 8,我已经使用下面的HTML代码片段来显示文本,但在InternetExplorer8版本中无法这样做 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script src="Scripts/jquery-1.10.2.js"></script>
<!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>
$(文档).ready(函数(){
$(“#测试”).html(“欢迎光临\n Hello World”)
});
此代码段在IE的最新版本中工作正常,但在IE8版本中“\n”不起作用。如何解决这个问题?提前感谢。为了确保与IE 8的兼容性,请尝试使用\r\n而不是\n在所有情况下,您应该将
\n
替换为
,因为您提交的是HTML,而不是文本。\n
在所有浏览器中都应该有问题。尝试更正确的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;
}
\r\n
是windows换行符<代码>\n适用于linux
话虽如此,
\r\n
如果要使用它在呈现的HTML页面中将文本拆分为另一行,则它将不起作用。为此,您应该使用
\r\n是windows(因此IE)断线尝试将“\n”
替换为“\r\n”
。据我所知,这是很久以前的事了,\n
表示“下一行”,而\r
表示“换行”或“将光标移到屏幕左侧”。不管怎样,大多数Microsoft产品仍然需要完整的“\r\n”
。我不认为它在其他浏览器中的工作可以。。。因为您在div中附加html,并且\n
不能像html那样工作,所以您应该使用
,我认为,如果您在源文件中使用UNIX\n
作为换行符,那么在任何地方使用\r\n
都不是最佳做法IE
可以正确地接受\n
,如果您了解IE
与DOM的工作原理…啊哈。。。错过了。如果我们想变得“更好”,如果可能的话,我会跳过;这是淡酱汁
document.getElementById('test').firstChild.nodeValue = "WELCOME\nhelloworld";