ホームページ  >  記事  >  ウェブフロントエンド  >  範囲入力の「Onchange」イベント処理で Firefox の動作が異なるのはなぜですか?

範囲入力の「Onchange」イベント処理で Firefox の動作が異なるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-21 18:32:02830ブラウズ

Why Does Firefox Behave Differently in 'Onchange' Event Handling for Range Inputs?

入力タイプ=範囲 Firefox での変更時イベント動作の違い

問題ステートメント:

while を使用すると、Firefox はスライダーが新しい位置にドロップされたときにのみ 'onchange' イベントをトリガーしますが、Chrome などの他のブラウザーはドラッグ操作中にイベントを開始します。

解決策:

動作の不一致は、ブラウザーの「onchange」イベントの実装が異なるために発生します。 HTML 仕様に従って、'onchange' は入力フィールドの値が確定したとき (マウスが放されたときなど) にのみ実行される必要があります。

この不一致に対処するには、次の解決策を採用できます:

マウスのドラッグ中とキーボード入力中の値の変更をキャプチャする「oninput」イベントを利用して、ブラウザ間で一貫した動作を提供します。

ただし、「oninput」は IE10 ではサポートされていません。したがって、包括的な互換性を確保するために、「oninput」イベント ハンドラーと「onchange」イベント ハンドラーの両方を組み合わせることを検討してください。

<code class="html"><span id="valBox"></span>
<input
  type="range"
  min="5"
  max="10"
  step="1"
  oninput="showVal(this.value)"
  onchange="showVal(this.value)"
/></code>

このアプローチを組み込むことで、「onchange」イベントは Firefox、Safari、Chrome で一貫してトリガーされます。また、IE10 との互換性も確保されています。

以上が範囲入力の「Onchange」イベント処理で Firefox の動作が異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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