Devrais-je utiliser .innerHTML ou .value pour <textarea>?

Ceci est un suivi de Cela ne fonctionne-t-il pas parce que je ne peux pas utiliser un script dans un div?

Là où je suis parti, j'ai eu ce code:
Script de bouton:

<script> var correctProperty = "value"; function run(){ document.getElementsByTagName("head")["0"].innerHTML += eval(document.getElementById("editorHead")[correctProperty]); document.getElementById("result").innerHTML = eval(document.getElementById("editorBody")[correctProperty]); } </script> 

Les zones de texte (sans attributs de class et de style et entre le texte non div):

 <textarea id="editorHead" rows="20"></textarea> <textarea id="editorBody" rows="20"></textarea> <div id="result"></div> 

Actuellement, cela ne fonctionne pas, et une de mes réponses d'avant (l'accepté) a déclaré que la correctProperty devrait être définie sur "innerHTML" . Alors devrait-il? Ou le problème est-il une interférence avec la window (comme avant)? Ou … je devrais le mettre sous une forme, puis utiliser "value" ?

Vous accédez et mettez à jour la valeur d'un élément textarea via la propriété "valeur".

Essayer:

  var theValue = document.getElementById("editorHead").value; 

La mise à jour de l'élément <html> n'a pas beaucoup de sens.

Javascript innerHTML met à jour le texte dans la zone de texte mais il ne montre pas vos modifications dans la fenêtre du navigateur; Si vous l'utilisez pour la deuxième fois. Par exemple, si vous aviez un bouton qui mettait à jour le texte dans la zone de texte; Ce bouton insère le texte pour la première fois mais pour la deuxième fois bien qu'il insérez du texte dans la zone de texte (comme cela peut être prouvé par un outil de développement de firebug ou chrome), mais cela ne s'affiche pas dans la fenêtre du navigateur. Au lieu de cela, si vous utilisez une valeur, cela apparaîtrait dans le navigateur (j'avais testé cela dans Chrome et Firefox).

Je pense donc que vous devriez utiliser .value

Vous ne savez pas pourquoi vous utilisez eval … ci-dessous est corrigé … en dehors de ce qui n'est pas sûr de ce que vous essayez d'accomplir. Les deux value et innerHTML vont tirer de textareas, la question est ce que vous voulez seulement du texte dans le retour ou des valeurs HTML possibles.

 function run(){ document.getElementsByTagName("html")[0].innerHTML += document.getElementById("editorHead").innerHTML; document.getElementById("result").innerHTML = document.getElementById("editorBody").innerHTML; }