Chrome v70 + имеет проблему с innerText в ячейках TD - PullRequest
0 голосов
/ 20 октября 2018

Это работало в 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 следует изменить, чтобы она была более конкретной и включала только символ завершающей табуляции (U + 0009) для вызовов таблицы или строки innerText вместо прямого вызова ячейки td.

Ответы [ 4 ]

0 голосов
/ 26 октября 2018

Это сломало расширение, которое я написал для клиента.Я проверял ячейки [blah] .innerText == 'somevalue', и эти проверки становились ложными при обновлении, когда они должны были быть истинными.

Изменение параметра innerText на textContent исправило его, что противоречит интуиции, поскольку textContentПредполагается, что пробелы сохраняются так же, как и тег pre, а innerText должен просто получить текст.

0 голосов
/ 22 октября 2018

Похоже, что команда Chrome "исправила ошибку", которая работала некорректно, в соответствии со стандартом (на основе ссылки ниже).Это застало меня врасплох и унаследованным приложением.

функциональность innerText

0 голосов
/ 24 октября 2018

Я делаю несколько простых сравнений текста, поэтому я переключился на .innerHTML, потому что он, кажется, не имеет тех же требований добавления вкладок / LF, что и .innerText.

В моем случае ячейки неесть какой-либо HTML в них.Я думал, что .innerText был более ясным, что я хотел только текст.Но, я полагаю, если вы преобразуете ячейки таблицы в текст, вам понадобятся эти символы-разделители.

0 голосов
/ 20 октября 2018

У меня точно такая же проблема.Обходной путь, который я использую сейчас, изменяет мой код на cell.innerText.trim().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...