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

テキストエリアの使用に関する注意事項
なぜテキストエリアについて具体的に言及するのでしょうか?なぜなら、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 のインストールとアンインストールの完全なステップバイステップの記録

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

推薦する

Linux/Docker で System.Drawing.Common を使用する

序文プロジェクトを .net core に移行した後、 System.Drawing.Commonコ...

MySQLで判定文を書く方法のまとめ

MySQL で判断文を書く方法:方法1. CASE関数case関数の構文: CASE条件 値1の場合...

Linux でソースインストールされたパッケージを簡単に削除する方法

ステップ1: Stowをインストールするこの例では CentOS を使用しているため、拡張 EPEL...

Docker コンテナにおける Patroni の簡単な分析

目次イメージの作成ファイル構造Dockerファイルエントリポイント関数ファイルを生成するイメージを構...

js でオブジェクトとオブジェクト メソッドを作成するいくつかの方法の詳細な説明

この記事は、JS レッドブックの第 8 章に記載されているオブジェクトに関する 2 番目の記事です。...

CSS3 は、跳ねるボール効果を実現する Web アニメーションを作成します。

基本的な準備この実装には、クラス名が ball である単純な div が必要です。 HTMLコード:...

MySQL の遅いクエリの最適化方法と最適化の原則

1. 日付のサイズを比較するには、XML に渡される日付形式は 'yyyy-MM-dd...

Reactは感情を使ってCSSコードを書く

目次導入:感情のインストール:一般的な CSS コンポーネントを追加します。既存のコンポーネントにス...

Dockerでの接続例外中のエラーを解決する

Docker を初めて使い始めると、通常とは異なる問題に遭遇して、必然的に混乱してしまいます。大丈夫...

水平プログレスバーの最後にテキストを表示するための実装コードの CSS 記述

問題の説明仕事で以下の成果を達成したいと考えています。 解決div タグに相対配置を追加し、絶対配置...

MySQL SHOW STATUSステートメントの使用

MySQL のパフォーマンス調整とサービス ステータスの監視を行うには、MySQL の現在の実行状態...

Linux whatisコマンドの使い方

01. コマンドの概要whatis コマンドは、システム コマンドの簡単な説明を含むいくつかの特別な...

Docker を使用して Spring Boot をデプロイする方法の例

ここでは主に、スタンドアロンのプログラムを生成できるspring-bootと、Mavenプラグインd...

SQL Server コメントのショートカット キー操作

SQL Server のバッチコメントバッチ注釈Ctrl + (K, C): Ctrlキーを押しなが...