Chrome v70 +在TD单元中的innerText有问题

时间:2018-10-19 23:23:28

标签: google-chrome html-table

这适用于v69及更低版本。

最后一个单元格之前的单元格的每个innerText值都带有结尾字符。

在此处查看:http://jsfiddle.net/L16x9gpe/

<html>
<body>
<table>
    <tr id='row'>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
</table>
</body>
</html>

编辑:我在这里提出了有关Chromium开发的问题:https://bugs.chromium.org/p/chromium/issues/detail?id=897373似乎目前所有浏览器都没有尾随字符的问题,包括Firefox显然是原始规范的出处。提交作者井上良史(yosin@chromium.org)表示这应该是正确的实现。我认为它应该像其他浏览器一样工作,并且不具有这种区别行为。 whatwg规范应该更改为更具体,并且仅包括用于表或行innerText调用的尾随制表符(U + 0009),而不是直接调用td单元格。

4 个答案:

答案 0 :(得分:1)

我有完全相同的问题。我现在使用的解决方法是将代码更改为cell.innerText.trim()

答案 1 :(得分:1)

根据标准(基于以下链接),Chrome团队似乎“修复了无法正常工作的故障”。 这也使我对继承的应用程序措手不及。

innerText functionality

答案 2 :(得分:0)

我正在做一些简单的文本比较,所以切换到.innerHTML,因为它似乎没有与.innerText相同的制表符/ LF附加要求。

就我而言,单元格中没有任何HTML。我以为.innerText更清楚了,我只想要文本。但是,我想,如果要将表格单元格转换为文本,则需要具有这些分隔符。

答案 3 :(得分:0)

这打破了我为客户编写的扩展程序。我正在检查cells [blah] .innerText =='somevalue',并且这些检查在应为真时随更新而为false。

将innerText更改为textContent可以解决此问题,这是违反直觉的,因为textContent应该保留与pre标签相同的空格,而innerText应该只是为您提供文本。