Problème des vieux navigateurs : principalement ⇐ IE8 qui utilisent la méthode attachEvent().
IE9 : addEventListener()
document.getElementById('mon_id').addEventListener('<event>', function() { <code à exécuter> }, <booléen:type de propagation>);
⇐ IE8 : attachEvent()
document.getElementById('mon_id').attachEvent('on<event>', function() { <code à exécuter> });
Exemple de début de polyfill :
if (window.addEventListener) { // si la méthode addEventListener est présente <code addEventListener> } else if (window.attachEvent) { // sinon si la méthode attachEvent est présente <code attachEvent> }
Jquery :
$('#mon_id').on(<event>), function(event) { <code>; }
Documentation intéressante : dustindiaz.com/rock-solid-addevent