テキストエリアの使用に関する注意事項

テキストエリアの使用に関する注意事項
なぜテキストエリアについて具体的に言及するのでしょうか?なぜなら、textarea ノードは実際には非常に特殊だからです。このノードは特別なため、IE と他のブラウザでは解釈が異なります。

しばらくハラハラさせておきますね、ハハハ!実際、主な理由は、今日、先輩がバグを修正するのを手伝ったことです。具体的には、サーバーからデータを取得してテキストエリアに挿入するときに障害が発生したためです。この状況は IE でのみ発生しました。他のブラウザはすべて正常です!

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

実験してみるのもいいかもしれません:

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

IE9+ はテストしていませんが、IE6、7、8 ではすべてエラーが報告されます。

JS がテキストエリアに HTML を動的に挿入できないのはおそらくセキュリティ上の理由によるものですが、注意深い人なら、HTML コードを手動で入力するとテキストエリアがそれを受け入れることができることに気付くでしょう。これは実際に、キャラクターの脱出というプロセスを経たと思います。はい、これが HTML コードを手動で入力して成功した唯一の理由です。

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

したがって、textarea の値は innerHTML ではなく (もちろん、Firefox では innerText になる可能性はさらに低くなります)、値を通じて設定する必要があると思います。これは開発者が注意すべき点です。最近見たコードの中には、常に innerHTML を使用するものがあったからです。実際のところ、すべては状況次第だと思います。

<<:  MySQL 8.0.26 のインストールとアンインストールの完全なステップバイステップの記録

>>:  ウェブ標準学習リソースの素晴らしいコレクション

推薦する

MySQL のロックの仕組みと使用法の分析

この記事では、例を使用して MySQL のロック メカニズムと使用方法を説明します。ご参考までに、詳...

mysql-8.0.17-winx64 のデプロイメント方法

1. 公式サイトからmysql-8.0.17-winx64をダウンロードし、Zipファイル形式を選択...

Node.js での組み込みモジュールとカスタムモジュールの実装

1. コモンズCommonjsはNode.jsのカスタムモジュールですCommonjs 仕様は、Ja...

HTML ページにミュージック ビデオを追加する例

1. ビデオタグFirefoxでは自動再生をサポートしますが、GoogleとIEではサポートしません...

HTMLフォームアプリケーションにはチェックボックスとラジオボタンの使用が含まれます

チェックボックスやラジオボタンの使用を含むコードをコピーコードは次のとおりです。 <!DOCT...

ウェブサイトのビジュアルデザインパスはユーザーの習慣に合わせる必要がある

クーパー氏は、一般的に上から下、左から右に向かうユーザーの視覚経路について話しました。優れたビジュア...

Linux Cron によるパラメータ付き PHP コードのスケジュール実行

1. 引き続き PHP スクリプトを使用して実行します。コマンドラインに入力: php /home/...

MySQL 8.0 のユーザーとロールの管理原則と使用方法の詳細

この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...

Web インタビュー Vue カスタム コンポーネントと呼び出しメソッド

輸入:プロジェクトの要件により、同じコードの一部をコンポーネントにカプセル化し、必要な場所にインポー...

JavaScript 改ざん防止オブジェクトの使用例

目次JavaScript 改ざん防止オブジェクト1. 拡張不可能なオブジェクト2. 封印された物体3...

CentOS7 インストール Zabbix 4.0 チュートリアル (イラストとテキスト)

SeLinuxを無効にするsetenforce 0永久に閉店: vi /etc/selinux/c...

FileZilla Server の FTP サーバー構成と 425 エラーおよび TLS 警告の解決策の詳細な説明

123WORDPRESS.COM では、FileZilla のダウンロード リンクを提供しています:...

はじめに: HTML の基本的なタグと属性の簡単な紹介

HTML はタグと属性で構成されており、これらを組み合わせてブラウザにページの表示方法を指示します。...

MySQL 接続クエリを本当に学びましたか?

1. 内部結合クエリの概要内部結合は、アプリケーションで非常に一般的な結合操作であり、通常はデフォ...

ページを更新せずにフォームを送信するには iframe を使用します

そこで、この問題を解決するために埋め込みフレームワークを導入します。具体的な原則は、フォームがデータ...