我在我的工作场景中使用了如下所示的代码片段。它在IE的最新版本中运行良好,但是联接功能在IE 8版本中不起作用。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var str = "TEST\n";
var lines = str.split(/\r?\n/).join("\r\n");
debugger;
</script>
</body>
</html>
如何解决此问题?在此先感谢。
答案 0 :(得分:0)
您的特定示例中的问题宁愿是split()
函数,而不是join()
。 split()
在JScript 6(IE8)和后来的JScript版本之间的行为不同,因为如果分隔符实际结束或开始字符串,则结果数组的长度不同。在这种情况下,<null>
项被删除,意思是:
JScript 6:
&#34; TEST \ n&#34; .split(&#34; \ n&#34;)。长度等于1JScript 6+:
&#34; TEST \ n&#34; .split(&#34; \ n&#34;)。长度等于2
同样,在您的示例中,这意味着IE8中的join()
是在仅包含一个元素的数组上执行的。
相反,如果你使用replace()
- 这似乎是一个更好的选择 - 你可以克服这个问题,即str.replace(/\r?\n/g, "\r\n")
。