~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PROBLEMAS NO IE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - IEN1 : Os elementos sem superior ficam com 'parentNode' a apontar para um documento inválido. [8-] <== RESOLVIDO - IEN2 : A passagem de objectos 'Events' através de 'setTimeout' (e possivelmente outros tipo de execução deferida) resultam em erro porque o 'srcElement' perde o valor. [8-] <== RESOLVIDO - IEN3 : Quando se passa para um campo que não suporta o método 'select' deixa activa a selecção do último campo em que foi aplicado. [X-] - IEN4 : Uma função atribuída a um evento da forma «el.onevent = func» não recebe o evento como parâmetro, ao contrário do que acontece com «el.attachEvent». [8-] <== RESOLVIDO - IEN5 : isNaN aceita objectos de todos os tipos como parâmetros. O código seguinte gera uma excepção: var o = new ActiveXObject ('Msxml2.DOMDocument'); isNaN ([o]);) [X-] - IEN6 : Um NodeList retornada por getElementsByTagName sobre um elemento orfão passa a ser inválida mal o tal elemento seja inserido no documento. [X-] - IEN7 : String.substr não suporta índices negativos. [8-] <== RESOLVIDO - IEN8 : O readyState "interactive" dispara antes do documento estar pronto, inclusive com !document.body. [8-, aleatório no 9 e 10 e resolvido no 11] <== RESOLVIDO - IEN9 : O oninput é suportado na versão 9 mas não dispara quando se elimina caracteres, seja com «delete», «backspace- ou por corte. [9-] <== RESOLVIDO - IEN10 : D.importNode() não importa elementos de XMLDocument. [10-] <== RESOLVIDO - IEN11 : CSS suporta "load"? [9-] <= RESOLVIDO - IEN12 : O evento "onresize" propaga o "srcElement" a nulo. [8-] - IEN13 : Não suporta o elemento . [X-] - IEN14 : Não é possível criar e configurar um pelo DOM para conter Flash. Aparentemente, nem referenciado o Flash fica; na melhor das hipóteses, a interface com o Javascript não funciona. Resolve-se o problema criando o objecto com "parent.innerHTML=...". No caso do player_mp3_js.swf, a inicialização da interface com o Javascript requer um (ver AudioPlayer/flah-ie.js). [X-] - IEN15 : O XMLHttpRequest não aceita métodos HTTP próprios. [8-] <== RESOLVIDO - IEN16 : O XMLHttpRequest não preenche o responseXML devidamente quando recebe XHTML. [8-] <== RESOLVIDO - IEN17 : Não respeita "xmlns=http://www.w3.org/1999/xhtml" no XML recebido via XMLHttpRequest. [9-] <= RESOLVIDO - IEN18 : Suporta o HTMLLabelElement.control. [X-] - IEN19 : String não suporta trim(). [8-] <== RESOLVIDO - IEN20 : String não suporta trimLeft(). [X-] - IEN21 : String não suporta trimRight(). [X-] - IEN22 : Suporte para autofocus. [9-] <== RESOLVIDO - IEN23 : String.splice com índice negativo não assume a contagem. [8-] <== RESOLVIDO - IEN24 : Não suporta XMLDocument. [10-] - IEN25 : O evento "onload" propaga o "srcElement" a nulo nas imagens. [8-] - IEN26 : Suporta o XMLHTTPRequest.responseType="json"? => http://msdn.microsoft.com/en-us/library/ie/hh872882%28v=vs.85%29.aspx - IEN27 : O IE não suporta HTMLButtonElement.type = 'button' antes de ser inserido no documento. [8-] - IEN28 : window.open() retorna um objecto sem suporte para addEventListener() (mesmo enquanto o documento não carrega). [X-] - IEN29 : Suporta para String.prototype.startsWith() [X-] - IEN30 : Suporta para String.prototype.endsWith() [X-] - IEN31 : document.all é detectado com um simples if(document.all)? (isto provavelmente pretende desencorajar a utilização desses objectos) [11+] - IEN32 : CSS omite "load" para recursos inexistentes? [X-] - IEN33 : CSS dispara "error" para recursos inexistentes? [X-] - IEN34: Suporta String.prototype.endsWith()? [Usado para detectar browseres de última geração] [X-] - IEN35: Suporta window.scrollX/Y? [10-] - IEN36 : Suporte para Image.naturalWidth/naturalHeight. [9-] <== RESOLVIDO - IEN37 : O evento "onchange" não "borbulha". ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IE 11 - O IE11 já não necessita de tratamento especial e passa a ser «compensado» pelo "w3c-.js". Parte-se do princípio que já não serão precisos módulos específicos, pelo que se usa o Im() definido no "w3c.js" em detrimento do de "ie10-.js". Se de futuro se revelar que afinal isso ainda é necessário será preciso copiar o Im() de "ie10-.js" para a secção IE do "w3c-.js". ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Testes sobre o Number.toFixed no IE 8- i = 135.9; dbg.print (i, i.toFixed (2)); i = 41.2797960002; dbg.print (i, l = i.toFixed (20), l.length); i = 0.27979600023456789; dbg.print (i, l = i.toFixed (20), l.length); i = 191.27979600023456789123456789; dbg.print (i, l = i.toFixed (20), l.length); i = 192; dbg.print (i, l = i.toFixed (20), l.length); i = 192279796000234567891; dbg.print ("i", i + "", l = i.toFixed (20), l.length); i = -0.94; dbg.print ("i", i + "", l = i.toFixed (0), l.length); i = .94; dbg.print ("i", i + "", l = i.toFixed (0), l.length);