gpt4 book ai didi

带有跨浏览器换行符的 Javascript 预格式化文本

转载 作者:数据小太阳 更新时间:2023-10-29 04:31:22 30 4
gpt4 key购买 nike

我有带有换行符和多空格的预格式化字符串,我想将它们附加到文本节点中。

<pre id="bar"></pre>

<script>
var string = "Preformatted"
+ "\n" // \r, \r\n, \n\r or what else?
+ "multispace string";
var text = document.createTextNode(string);
document.getElementById('bar').appendChild(text);
</script>

我尝试采用作为断行符:

  • \n在所有浏览器中换行,但在 IE 中(我在 7 上测试)变成一个空格
  • \r仅在 IE 中换行
  • \r\n适用于所有浏览器,但在 IE 中,第二行开头的空格很恐怖
  • \n\r总的来说还可以,但是在 IE 中,第一行末尾的空间对于我的布局来说是 Not Acceptable 。

我不能使用 <br>和 innerHTML,因为 IE 会折叠多空格。
jQuery .text(string)具有与 .appendChild(createTextNode(string)) 完全相同的行为

如何插入跨浏览器的换行符?
最终,我如何轻松检测浏览器是否支持 \n\r

最佳答案

这似乎适用于我测试的所有浏览器(safari、opera、chrome、firefox、ie7、ie8、ie9):

http://jsfiddle.net/4bQ5Q/1/

代码:

var textarea = document.createElement("textarea");
textarea.value = "\n";
var eol = textarea.value.replace(/\r\n/, "\r");

var string = "Preformatted" + eol + "multispace string";

var text = document.createTextNode(string);
document.getElementById('bar').appendChild(text);​

关于带有跨浏览器换行符的 Javascript 预格式化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887011/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com