Maison > Article > interface Web > Notes sur l'utilisation de la production de pages Textarea_HTML/Xhtml_Web
Pourquoi mentionner textarea en particulier ? Parce qu'en réalité le nœud textarea est très spécial. Ce nœud étant spécial, il est interprété différemment sous IE et les autres navigateurs.
Essayez-le, haha ! En fait, la raison principale est d'aider un frère aîné à corriger un BUG aujourd'hui. Plus précisément, c'est parce que les données n'ont pas pu être extraites du serveur et insérées dans la zone de texte. Cette situation ne se produit que dans IE. Tout fonctionne bien dans les autres navigateurs !
Tout d’abord, pourquoi la zone de texte est-elle spéciale ? Dans tous les plug-ins de formulaire, la valeur de textarea est écrite entre deux balises d'ouverture et de fermeture, sa valeur peut donc être considérée comme un nœud de texte du point de vue du DOM, qui est unique à textarea. C'est précisément grâce à cette fonctionnalité que vous pouvez toujours changer le texte de la zone de texte lorsque vous modifiez sa valeur innerHTML. Bien qu'IE le prenne en charge, il ne permet pas une chose : l'insertion dynamique de certaines balises html.
Autant faire une expérience :
Insérez un morceau de code HTML via JS sous IE, en utilisant l'attribut innerHTML au lieu de value ou innerText.
Je n'ai pas testé IE9, mais IE6, 7 et 8 signaleront tous des erreurs.
On estime que pour des raisons de sécurité, JS n'est pas autorisé à insérer dynamiquement du HTML dans la zone de texte, mais les personnes prudentes peuvent constater qu'en fait, si vous tapez le code html manuellement, la zone de texte est acceptable. Je pense que cela passe en fait par un processus : la fuite du personnage. Oui, c’est la seule raison qui peut expliquer le succès de la saisie manuelle du code html.
Donc, à mon avis, puisque les zones de texte de tant de navigateurs ne prennent pas en charge l'affichage du HTML, pourquoi devons-nous utiliser l'attribut innerHTML lors de l'utilisation de JS ? Autrement dit, que vous utilisiez value pour insérer du code HTML ou innerHTML pour insérer du code HTML, il ne sera pas analysé et affiché (c'est pourquoi il existe un éditeur de texte enrichi au lieu de textarea), alors pourquoi ne pas utiliser value pour définir la valeur de la zone de texte ?
Je pense donc que la valeur de textarea ne doit pas être définie via innerHTML (bien sûr, il n'est pas possible d'être innerText, à cause de Firefox), mais doit être définie via value. C'est une chose à laquelle les développeurs devraient prêter attention. Parce que certains codes de chaussures pour enfants que j'ai vus récemment aiment toujours utiliser innerHTML. En fait, je pense que tout dépend de l'occasion.