ホームページ  >  記事  >  ウェブフロントエンド  >  Textarea_HTML/Xhtml_Webページ制作ご利用時の注意点

Textarea_HTML/Xhtml_Webページ制作ご利用時の注意点

WBOY
WBOYオリジナル
2016-05-16 16:38:361515ブラウズ

なぜ特にテキストエリアについて言及するのでしょうか?実際、textarea ノードは非常に特殊であるためです。このノードは特殊なため、IE と他のブラウザでは解釈が異なります。

試してみてください、ハハ!実際、主な理由は、今日、兄弟がバグを修正するのを手伝うことです。具体的には、この状況が IE でのみ発生する、サーバーからのデータの取得とテキストエリアへの挿入が失敗したためです。他のブラウザではすべて正常に動作します。

まず第一に、なぜ textarea が特別なのでしょうか?すべてのフォームプラグインでは、textarea の値が開始タグと終了タグの間に記述されるため、その値は DOM の観点からはテキストノードとみなすことができ、これは textarea に特有です。この機能により、innerHTML 値を変更するときにテキストエリアのテキストを変更することができますが、IE ではこれをサポートしていますが、一部の HTML タグを動的に挿入することは許可されていません。

次の実験を行ってみてはいかがでしょうか。

value または innerText の代わりに innerHTML 属性を使用して、IE で JS を介して HTML コードを挿入します。

IE9 はテストしていませんが、IE6、7、および 8 はすべてエラーを報告します。

セキュリティ上の理由から、JS では HTML をテキストエリアに動的に挿入することは許可されていないと推定されていますが、注意深い人であれば、実際には HTML コードを手動で入力する場合、テキストエリアは許容されることがわかります。これは実際には文字エスケープというプロセスを経ていると思います。はい、これが、HTML コードを手動で入力することが成功する唯一の理由です。

では、私の意見では、非常に多くのブラウザーのテキストエリアは HTML の表示をサポートしていないのに、JS を操作するときに、なぜ innerHTML 属性を使用する必要があるのでしょうか?つまり、value を使用して HTML コードを挿入しても、innerHTML を使用して HTML コードを挿入しても、解析および表示されません (そのため、textarea の代わりにリッチ テキスト エディターが存在します)。そのため、value を使用して値を設定しないのはなぜでしょうか。テキストエリアの?

したがって、textarea の値の設定は innerHTML 経由ではなく (もちろん、Firefox なので innerText にすることはできません)、value 経由で設定する必要があると思います。これは開発者が注意を払うべきことです。なぜなら、私が最近見た子供靴のコードの一部は常に innerHTML を使用することを好むからです。実際のところ、すべては場合によると思います。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。