Gunnar Bittersmann: Browserweiche notwendig

Beitrag lesen

@@ralphi:

nuqneH

Schön wär’s, aber 'oninput' in input* liefert im IE 11 true.

Nun - es funktioniert.

War deine Antwort bewusst auf die Zeile darüber bezogen? Du hast 'oninput' in input nirgends eingebaut.

Aber das war es wohl, was MudGuard mit „nicht auf einen Browsernamensteil testen, sondern ob das zu benutzende Feature zur Verfügung steht!“ im Sinn hatte:

if (inputEventSupported)  
{  
  input.addEventListener('input', showSliderValue, false);  
}  
else  
{  
  input.addEventListener('change', showSliderValue, false);  
}

Der Test, ob das input-Event zur Verfügung steht, wäre wohl

var inputEventSupported = 'oninput' in input;  

Nur dass das als Test nicht taugt, weil das auch im IE 11 true liefert, obwohl er das input-Event nicht feuert.

input.addEventListener('input', showSliderValue, false);
input.addEventListener('change', showSliderValue, false);

tatsächlich wird beim IE beides durchlaufen.

In anderen Browsern auch.

Aber es funktioniert - sowol beim IE11, Firefox und chrom. Die Werte gehen mit dem Slider bei Veränderung sofort mit.

NUR ZUFALL ??

Nein, kein Zufall.

Standardkonforme Browser ändern bei jedem input-Event (Ziehen des Sliders) den Wert und danach beim change-Event (Loslassen des Sliders) nochmal. Davon geht die Welt nicht unter.

IE 11 feuert beim Ziehen des Sliders das change-Event (was nicht standardkonform ist) und ändert den Wert. Das input-Event feuert er gar nicht.

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)