¿Por qué mencionar específicamente TextARea? Porque el nodo TextAREA es realmente muy especial. Debido a que este nodo es especial, la explicación es diferente en IE y otros navegadores.
¡Deja de venderlo, jaja! De hecho, la razón principal es que ayudé a un hermano mayor a reparar un error hoy. Específicamente, no pudo extraer datos del servidor e inserte en TextAREA. Esta situación solo ocurre en IE. ¡Todos los demás navegadores son normales!
En primer lugar, ¿por qué TextARea es especial? En todos los complementos de formulario, el valor de TextAREA se escribe entre dos etiquetas abiertas y cerradas, por lo que su valor puede considerarse como un nodo de texto desde la perspectiva del DOM, que es exclusiva de TextAREA. Debido a esta característica, cuando modifica su valor interno, aún puede cambiar el texto de TextAREA. Aunque IE admite hacer esto, no permite una cosa: insertar dinámicamente algunas etiquetas HTML.
También podrías hacer un experimento:
Inserte una pieza de código HTML a través de JS en IE, utilizando el atributo InnerHTML en lugar de valor o inntext.
No probé IE9+, pero IE6, 7 y 8 informarán errores.
Probablemente sea por razones de seguridad, por lo que a JS no puede insertar dinámicamente HTML en TextARea, pero las personas cuidadosas pueden encontrar que si escribe el código HTML manualmente, TextARea es aceptable. Creo que esto en realidad pasó por un proceso como este: escape de personajes. Sí, esta es la única razón por la cual el código HTML manual es exitoso.
Entonces, en mi opinión, dado que muchas texturas del navegador no admiten la pantalla HTML, ¿por qué aún necesita usar el atributo InnerHTML al operar JS? En otras palabras, no importa si inserta el código HTML con valor o interno con código HTML, no se analizará y se mostrará (por lo que habrá un editor de texto en lugar de TextARea). Entonces, ¿por qué no usar el valor para establecer el valor de TextAREA?
Por lo tanto, creo que establecer el valor de TextARea no debería ser a través de InnerHTML (por supuesto, es aún más imposible ser innecesizado debido a Firefox), sino que debe establecerse a través del valor. Esto es algo a lo que los desarrolladores deberían prestar atención. Porque recientemente he leído algunos códigos de zapatos para niños que siempre les gusta usar InnerHTML. En realidad, creo que esto se trata de ocasiones.