JS li onclick ne fonctionne pas sur IE8
Problème :
Dans le code fourni, l'élément li l'événement click ne se déclenche pas dans Internet Explorer 8.
Solution :
IE8 ne prend pas en charge addEventListener. Utilisez plutôt son prédécesseur non standard, attachEvent.
Modification du code :
Tout d'abord, créez une fonction pour gérer la connexion aux événements :
var hookEvent = (function() { var div; function standardHookEvent(element, eventName, handler) { element.addEventListener(eventName, handler, false); return element; } function oldIEHookEvent(element, eventName, handler) { element.attachEvent("on" + eventName, function(e) { e = e || window.event; e.preventDefault = oldIEPreventDefault; e.stopPropagation = oldIEStopPropagation; handler.call(element, e); }); return element; } function oldIEPreventDefault() { this.returnValue = false; } function oldIEStopPropagation() { this.cancelBubble = true; } div = document.createElement('div'); if (div.addEventListener) { div = undefined; return standardHookEvent; } if (div.attachEvent) { div = undefined; return oldIEHookEvent; } throw "Neither modern event mechanism (addEventListener nor attachEvent) is supported by this browser."; })();
Ensuite, utilisez cette fonction pour connecter l'événement auditeur :
hookEvent(document.getElementById("hd_vertical"), "click", function(e) { // Your event handling code here });
Remarque :
IE8 ne prend pas non plus en charge getElementsByClassName. Utilisez plutôt querySelectorAll ou querySelector :
var _url = document.querySelectorAll("." + id)[1].getAttribute('href');
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!