Por que mencionar especificamente textarea? Porque o nó Textarea é realmente muito especial. Como esse nó é especial, a explicação é diferente no IE e em outros navegadores.
Pare de vendê -lo, haha! De fato, o principal motivo é que ajudei um irmão sênior a reparar um bug hoje. Especificamente, ele não conseguiu extrair dados do servidor e inserir -os na textarea. Esta situação ocorre apenas no IE. Todos os outros navegadores são normais!
Primeiro de tudo, por que a textarea é especial? Em todos os plug -ins de formulário, o valor do textário é escrito entre duas tags abertas e fechadas, para que seu valor possa ser considerado como um nó de texto da perspectiva do DOM, que é exclusivo da textária. Devido a esse recurso, quando você modifica seu valor innerhtml, ainda pode alterar o texto da textarea. Embora o IE apoie isso, não permite uma coisa: insira dinamicamente algumas tags HTML.
Você também pode fazer um experimento:
Insira uma parte do código HTML através do JS no IE, usando o atributo InnerHTML em vez de Value ou InnerText.
Não testei o IE9+, mas o IE6, 7 e 8 relatará erros.
Provavelmente, é por razões de segurança, portanto, o JS não tem permissão para inserir dinamicamente o HTML na textarea, mas as pessoas cuidadosas podem descobrir que, se você digitar o código HTML manualmente, a textarea é aceitável. Eu acho que isso realmente passou por um processo como este: fuga de personagens. Sim, essa é a única razão pela qual o código HTML manual é bem -sucedido.
Então, na minha opinião, como tantos navegadores textaras não oferecem suporte à tela HTML, por que você ainda precisa usar o atributo INnerHTML ao operar JS? Em outras palavras, não importa se você insere código HTML com valor ou inerhtml com o código HTML, ele não será analisado e exibido (portanto, haverá um editor de texto rico em vez de textarea). Então, por que não usar o valor para definir o valor da textarea?
Então, acho que definir o valor da textarea não deve ser através do InnerHTML (é claro que é ainda mais impossível ser integral por causa do Firefox), mas deve ser definido através do valor. Isso é algo que os desenvolvedores devem prestar atenção. Porque eu li recentemente alguns códigos de sapatos infantis que sempre gostam de usar o InnerHTML. Na verdade, acho que isso é tudo sobre ocasiões.