Javascript 新行字符“\";IE 8浏览器中不支持

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>

我已经使用下面的HTML代码片段来显示文本,但在InternetExplorer8版本中无法这样做

 <!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";