Merci Internet Explorer
Merci, oui, d'implémenter bancalement (ECMA/java)script (je laisse le soin aux pinailleurs de rayer la mension inutile) et de me rajouter une demie journée de boulot pour assurer la compatibilité de mon appli. Alors, bon à savoir:
- IE n'implémente pas
Event.which. - IE n'implémente pas
XMLHttpRequest.overrideMimeType(). - IE veut absolument un
;après unvar foo = {}. - IE ne veut surtout pas de
,après le dernier membre d'un objet (var foo = {'bar': 'foobar',};n'est pas correct pour IE). - IE ne précise pas quel objet et quelle méthode sont concernées par le message Cet objet ne gère pas cette méthode.
- IE ne précise pas le fichier dans lequel il trouve une erreur, juste la ligne (fausse) et la colonne (super).
- IE ne rougit même pas en faisant une erreur Unspecified Error.
- IE ne prévient personne quand il zappe tout un .js parcequ'il contient des erreurs de syntaxe.
- IE sous wine fonctionne mieux que IE sous w2k3.
- IE n'implémente pas
Event.currentTargetmaisEvent.srcElement. - IE n'implémente pas
Element.addEventListenermaisElement.attachEvent(attention,attachEventne prend que 2 arguments alors queaddEventListeneren prend 3).
Voilà. Et puis pour le fun, un petit bout de code:
var compat = { 'addListener': function(el, event, listener) { if (el.addEventListener) { return el.addEventListener(event, listener, false); } if (el.attachEvent) { return el.attachEvent('on' + event, listener); } return false; }, 'getEventTarget': function(e) { if (e.currentTarget) { return e.currentTarget; } if (e.srcElement) { return e.srcElement; } if (e.target) { return e.target; } return false; } };
Cela dit, un jour, je ferais la même chose mais en modifiant directement les protoypes des objets concernés.
Comments
IE n'implémente pas getElementsByTagNameNS non plus. Entrr autres.
IE ne se prévient pas qu'il est une merde sans nom
DE RIEN!