IE não é browser é pesadelo! ou (innerHTML em Tabela)

15 03 2008

Bom vou colocar ao longo dos próximos dias algumas pérolas advindas desse navegador que não serve nem como bucha de canhão na guerra das malvinas! Venham o trecho de código abaixo:

<input type=’button’ onclick=”$(‘teste’).innerHTML = $(‘meutabela’).innerHTML” value=’Copiar Tabela’>
<table id=’teste’></table>
<table id=’meutabela’>
<tr><td>teste</td></tr>
</table>
Esse código faz o seguinte (menos no IE) copia o conteúdo da tabela de meutabela para a tabela teste, fiquei pensando no motivo dele não funcionar no maldito IE e fiz o seguinte teste troquei <table id=’teste’></table> para <div id=’teste’></div> e adivinhem o IE copiou o conteúdo, vejam a inconsistência, ele não copia TR para dentro de uma tabela que é o certo mas copia TR para dentro de um DIV dá pra acreditar nisso! ainda não achei a solução quando descobrir posto aqui!

UPDATE: olha lá a solução, achei no blog deste camarada aqui Thiago Mata um episódio idêntico ao que estou passando, vou parafrasear o cara:

“Ao pesquisar na internet descobri o seguinte link no site da microsoft http://support.microsoft.com/kb/239832/pt-br onde, em resumo, não se pode mesmo alterar o innerHTML de uma tabela a não ser pelos métodos DOM. A mensagem de erro é essa mesmo e só lamento para você. Nem é colocado como um bug mas como um comportamento normal e esperado pelo browser. ”

Viram ai a puta sacanage, é igual aquela história da microsoft insistir que 1900 é um ano bissexto, lembram disso? então é a mesma coisa os caras fizeram uma cagadona e resolveram adotar aquilo como padrão, esse é o geitinho micro$oft de ser!

Seguindo a sugestão do Thiago ai está o código emgabiarrado mas funcionando no IE:

<div id=’teste’></div>
<div id=’meutabela’>
<table>
<tr><td>teste</td></tr>
</table>
</div>

SOLUÇÃO II

Devido a pau de id tive que achar uma outra solução para o problema, usei o insert do próprio prototype:

$('meutabela').insert($('teste').innerHTML);

O insert manipula o DOM e assim não cai no problema do innerHTML somente leitura para table do IE


Ações

Information

3 responses

16 03 2008
Pedro Rogério

IE bom é IE morto!!!

8 07 2008
Hábner

Cara valeu, quando não funcionou sabia logo que era algum “bug”.

8 07 2008
battisti

Háber só uma observação segundo a micro$oft isso ai não um bug não é padrão de projeto.

Deixe um comentário