code.block
和innerHTML
获取.split("\n")
标记的所有内容(下面的示例),结果是自行获取每一行。除了在IE中,这非常有效。
我尝试过使用innerText
和.split("\r\n")
也没有成功。有谁能推荐一个解决方案?如果它有所不同,我的code.block
代码的样式为white-space:pre-wrap
。
<code class="block css">div#randomBarsDemo {
width:175px;
height:200px;
}
div#randomBarsDemo div {
background-color:#111;
width:100%;
}</code>
答案 0 :(得分:1)
根据我的研究,除了这个问题之外,你会遇到更多浏览器一致性问题。我的建议是使用下面引用的脚本来修复其他浏览器的所有问题。
答案 1 :(得分:0)
到目前为止我发现的最好的东西(至少在Windows IE8中)是从目标元素中获取 innerText ,将\r
替换为<br/>
,并将其粘贴回 innerHTML
var el = document.getElementById('target');
el.innerHTML = el.innerText.replace(/\r/,"<br/>");
然后,如果您希望以后逐行获取目标,则可以.split()
<BR>
<BR>
。由于Internet Explorer的自动HTML解析, 为<br/>
而非innerText
。
因此,要直接回答问题,要计算行数,您需要获取\r
,并查找\n
s,而不是{{1}}。请告诉我这是否解决了您的问题,所以我知道这是帮助人们还是让他们误入歧途。