我正在做:
alert($("#div").text());
在这样的事情上:
<div id="div">
<div>
Some text
<div>
</div>
为什么要转义内容?因为它有时格式错误,我不希望它干扰或破坏文档的其余部分。
在 FF 中它显示保留换行符。在 IE7 中则不然。我需要保留空白区域。该内容实际上是在文本区域中进行编辑。
在有人推荐富文本编辑器之前,这段代码并不是真正的 HTML。这是一种自定义方言。
那么如何在 IE 中保留换行符呢?
看来这是我的问题:Internet Explorer 的innerHTML 怪癖 http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html:
然而,innerHTML 有一个问题
IE浏览器。
HTML 标准要求
内容显示的转换。各种类型和数量的相邻
空格被折叠成一个
空间。这是一件好事——就像
一个例子,它让我可以添加很多东西
此源文件中的换行符
不用担心奇怪的事情
显示文本中的换行符。
Internet Explorer 应用这些
分配给的转换
内部 HTML 属性。这似乎是一个
好主意:节省一点时间
在显示期间,因为如果
内存中的表示已经是
标准化,那么浏览器不会
必须在需要时进行正常化
显示文本。
但也有例外情况
不过,标准化规则。尤其,
这些是
Internet Explorer 不尊重
这些特殊情况。第三个使
他们的优化是一个坏主意,因为
空白可能会在运行时改变,
例如通过 DOM。在任何
在这种情况下,Internet Explorer 将正常化
所有分配给innerHTML
属性,从而产生效果
下面演示。
该文本填充页面的文本区域
加载。这也包含换行符
和多个空格。格式是
也保存在这里,除了
UA 可能会断线。
(强调已添加)
事实上,如果我将其更改为:
<div id="div">
<pre>
...
</pre>
</div>
and
$("#div pre").text()
或者简单地:
<style type="text/css">
#div { white-space: pre }
</style>
这一切都神奇地起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)