web-dev-qa-db-fra.com

Chrome v70 + a un problème avec innerText dans les cellules td

Cela fonctionnait dans v69 et inférieur.

Chaque valeur innerText d'une cellule avant la dernière a un caractère de fin.

Découvrez-le ici: http://jsfiddle.net/L16x9gpe/

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

Edit: J'ai soulevé un problème avec le développement de Chromium ici: https://bugs.chromium.org/p/chromium/issues/detail?id=897373 Il semble que tous les navigateurs actuels ne contiennent pas le caractère final. problème, y compris Firefox où la spécification originale a apparemment été dérivée. Yoshifumi Inoue ([email protected]), auteur de la publication, a déclaré que cette implémentation devait être la bonne. Je pense qu'il devrait agir comme les autres navigateurs et ne pas avoir ce comportement différenciant. La spécification whatwg doit être modifiée pour être plus spécifique et inclure uniquement un caractère de tabulation de fin (U + 0009) pour les appels innerText de table ou de ligne au lieu d'un appel direct à une cellule td.

6
brg

J'ai exactement le même problème. La solution de contournement que j'utilise maintenant modifie mon code en cell.innerText.trim().

1
N3K0100183

Il semble que l’équipe Chrome ait "corrigé un problème" qui ne fonctionnait pas correctement, conformément au standard (basé sur le lien ci-dessous). Cela m'a également pris au dépourvu avec une application héritée.

Fonctionnalité innerText

1
Creepygeek

Cela a brisé une extension que j'ai écrite pour un client. Je vérifiais les cellules [blah] .innerText == 'quelque chose', et ces vérifications sont devenues fausses avec la mise à jour alors qu'elles devraient être vraies.

La modification de innerText en textContent a corrigé le problème, ce qui est contre-intuitif, car textContent est censé conserver les espaces blancs de la même manière qu’une balise préalable, et innerText est censé vous fournir simplement le texte.

0
Amaroq

Je fais une comparaison de texte simple, alors je suis passé à .innerHTML, car il semble ne pas avoir les mêmes exigences que les onglets/ajouts LF.

Dans mon cas, les cellules ne contiennent aucun code HTML. Je pensais que .innerText était plus clair que je ne voulais que le texte. Toutefois, si vous convertissez des cellules de tableau en texte, vous souhaiterez utiliser ces caractères de séparation.

0
Steve