- ベストアンサー
<textarea>の最後尾に追加した実体参照や数値参照が意図した通り表示されない
<textarea>の最後尾に追加した実体参照や数値参照が意図した通り表示されません。 確認したこと(■1■)と、やりたい事(■2■)は、下記の通りです。 ■1■ <textarea>~</textarea>の中に直接記述すると 下記の例だと、 <とか> と、表示されます。 <textarea name="output" id="outputEdit" style="background-color:#99ff66" cols=80 rows=25> <とか> </textarea> ■2■ javascriptで<textarea>の最後尾に追加する方法だと、 下記の例だと、 <> と、表示されてしまいます。 <textarea name="output" id="outputEdit" style="background-color:#99ff66" cols=80 rows=25></textarea> <script language="javascript"> <!-- var objTextarea = document.getElementById('outputEdit'); objTextarea.value+="<>"; //--> </script> 2の記述で、1と同じ様に表示させたいのですが、 無理なのでしょうか? どうか宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
テキストエリアのinnerHTMLはブラウザごとの癖がつよいので 標準化はめんどそうですね。 単に置き換えればいいのでは? <form method="get"> <textarea name="output" id="outputEdit" style="background-color:#99ff66" cols=80 rows=25> <> hoge hoge </textarea> <input type="submit"> </form> <script> var objTextarea = document.getElementById('outputEdit'); objTextarea.value+=changeLTGT("なんか<てきとうに>かいてみる"); function changeLTGT($txt){ return $txt.replace("<","<").replace(">",">"); } </script>
その他の回答 (2)
1っす! なんだか名前の命名がよくないね~。 unescapeHTMLにして使ってください。^^;
お礼
pipiさん、yambejpさん、 回答ありがとうございました。 いろいろな方法があるのですね。 勉強になりました。 ありがとうございました。<m(_ _)m>
補足
了解しました。 ありがとうございます。
なんとなくこんなの書いてみたが、こんなのでいいのか俺が知りたい! <textarea id="outputEdit"></textarea> String.prototype.escapeHTML = function() { var div = document.createElement('div'); div.innerHTML = this; return div.innerText; } document.getElementById('outputEdit').value += "<とか>".escapeHTML();
お礼
pipi様 いつもありがとうございます<m(_ _)m> 試してみたら、意図したとおり、<とか> と出ました!! ありがとうございました。
お礼
yambejp様 回答、ありがとうございます。<m(_ _)m> 分かりやすい例、ありがとうございます。 >テキストエリアのinnerHTMLはブラウザごとの癖がつよいので・・・ そうなのですね。 ありがとうございました。<m(_ _)m>