Home Me envie um e-mail! Feed
Blog do yogodoshi

Erro “object doesn’t support this property or method” ao usar getElementById no IE

Depois de escrever o post “Bug de redirecionamento de página com window.location no IE” onde falei sobre mais uma das dificuldades de se criar sites crossbrowser? Pois então, descobri mais um problema naquele mesmo (e em outros) código.

O simples código:

function MudaCBS(){
pagina = document.getElementById(”calendario”).value
self.location = pagina;
}

Gerava o seguinte erro no IE: object doesn’t support this property or method, na linha onde defini que “pagina” receberia o valor de um input chamado “calendario”.

Já sabemos que o IE tem um bug na hora de pegar achar que NAME e ID são a mesma coisa para o método getElementById mas agora, descobri esse outro problema, que graças ao Stubblog descobri a solução.

Seguindo o autor do Stubblog, o IE não consegue gerenciar variáveis globais que tenham o mesmo nome de elementos ID do DOM, especialmente se esta variável está apontando para este nó do DOM.

O que acontece é o seguinte: quando a página está sendo parseada (parsing), o IE automaticamente cria uma variável global para qualquer coisa que tenha um name ou um id.

Para resolver este problema, geralmente, basta definir a variável dentro da função, da seguinte maneira:

function MudaCBS(){
var pagina = document.getElementById(”calendario”).value
self.location = pagina;
}

feed Gostou do Blog?  Assine o RSS Feed ou receba em seu e-mail

Posts Relacionados:
Erro: ‘ASP 0104 : 80070057′
Display:table-row não funciona no IE7, veja aqui a solução
Erro: Permissão negada para chamar o método XMLHttpRequest.open
Joolo – Hospedagem gratuita 1giga/10gigas
ErrorKey – Busque explicações e soluções para as mensagens de erro

Deixe seu comentário

Fechar
Envie por e-mail