Heim  >  Artikel  >  Web-Frontend  >  Warum verhält sich Firefox bei der „Onchange“-Ereignisbehandlung für Bereichseingaben anders?

Warum verhält sich Firefox bei der „Onchange“-Ereignisbehandlung für Bereichseingaben anders?

Linda Hamilton
Linda HamiltonOriginal
2024-10-21 18:32:02830Durchsuche

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

Eingabetyp=Bereich-Onchange-Ereignisverhaltensunterschied in Firefox

Problemstellung:

Während Bei Verwendung von löst Firefox das Ereignis „onchange“ nur aus, wenn der Schieberegler an eine neue Position verschoben wird, während andere Browser wie Chrome das Ereignis während des Ziehvorgangs initiieren.

Lösung:

Die Diskrepanz im Verhalten entsteht durch unterschiedliche Browser-Implementierungen des „onchange“-Ereignisses. Gemäß den HTML-Spezifikationen sollte „onchange“ nur ausgeführt werden, wenn der Wert des Eingabefelds endgültig festgelegt ist (z. B. wenn die Maus losgelassen wird).

Um diese Ungleichheit zu beheben, kann die folgende Lösung verwendet werden:

Verwenden Sie das „oninput“-Ereignis, das Wertänderungen sowohl beim Ziehen mit der Maus als auch bei Tastatureingaben erfasst und so für ein einheitliches Verhalten in allen Browsern sorgt.

Allerdings wird „oninput“ in IE10 nicht unterstützt. Erwägen Sie daher für eine umfassende Kompatibilität die Kombination der Ereignishandler „oninput“ und „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>

Durch die Integration dieses Ansatzes werden „onchange“-Ereignisse in Firefox, Safari und Chrome konsistent ausgelöst stellt außerdem die Kompatibilität mit IE10 sicher.

Das obige ist der detaillierte Inhalt vonWarum verhält sich Firefox bei der „Onchange“-Ereignisbehandlung für Bereichseingaben anders?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn