换行符#34; \ n" IE 8浏览器不支持

时间:2014-12-03 04:23:16

标签: javascript jquery html internet-explorer internet-explorer-8

我使用下面的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版本中无效。怎么解决这个?提前谢谢。

4 个答案:

答案 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/>