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

Bug de redirecionamento de página com window.location no IE

Ontem percebi que um código meu de redirecionamento de página, que estava usando em um <select> não estava funcionando no Internet Explorer. (pra variar)

Funciona da seguinte maneira, o usuário entra na página .asp e depois seleciona qual informação ele gostaria de ver em um select (com id=’calendario’) e será redirecionado para a respectiva página.

O código usado anteriormente que não funcionava no IE 7 nem no IE 6:

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

O código funcionando no Firefox e no IE 6 e 7:

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

Lição aprendida: não use window.location, use sempre self.location para redirecionamento da própria página.

Alguns podem estar se perguntando: por que eu não fiz em AJAX? Em diversas outras páginas nesse mesmo site eu fiz isso em AJAX onde o conteúdo era mostrado em uma div logo abaixo mas dessa vez eu achei que seria bom se o usuário pudesse ter um link direto para o conteúdo selecionado através de uma QueryString na URL; o que me fez evitar o uso de AJAX.

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

Posts Relacionados:
Erro “object doesn’t support this property or method” ao usar getElementById no IE
Tirinha: Conhecendo o Programador
A tão falada página 161
Bug do fundo transparente em imagens .png no IE 6
Outro bug é descoberto no Orkut

Christian diz,

Agosto 27, 2008 @ 3:22 pm

Agora tá explicado! Já tinha me deparado com isso, quando fazia um redirect no onload.
Saída? Usar meta-tag mesmo… hehe

Moura diz,

Agosto 30, 2008 @ 2:39 pm

Olá meu caro Yogodoshi, parabéns! pelo blog e pelas excelentes postagens.
Agora vai ser mais um blog para visitas diárias ou quase diárias, valeu pela dica.
Já te linkei, não necessariamente pela reciprocidade, mas sim porque gostei de seu blog.
Saúde, graça, paz e sucesso!
Abraço,
Moura
http://meioambiente.blogomoura.com

Thiago diz,

Setembro 1, 2008 @ 2:29 pm

Legal não sabia que dava pra substituir window por self.
Mais acho que a forma correta de se fazer, para não dar erro em nenhum navegador, seria assim:

Script:
function MudaCBS(obj) {
pagina = obj.value;
window.location = pagina;
}

Chamando a função no Select:
onchange=”MudaCBS(this)”

Este exemplo serve também para validação de formulários.

Flw yogodoshi.
Seu blog ta show!!!

Lucas diz,

Julho 13, 2010 @ 10:00 pm

Bom, estou contruindo um site com base nos navegadores Chrome e Firefox…
Percebi que algumas coisas nao aparecem no internet explorer 6..7…8.

Não quero ter o trabalho de mudar toda a pagina para adaptar ao internet explorer, entao eis a pergunta.

Existe algum script que se o usuario estiver usando alguma versao do IE, ele é autimaticamente redirecionado para uma outra página?

No meu caso eu tenho um blog, e gostaria de redirecioná-lo quem usa o internet explorer para meu outro link de site que é o mesmo só esta hospedade em link próprio, a diferença é que esse outro link funciona perfeitamente no internet explorer.

Isso eu também não entendi quando descobri. Bom voltando ao assunto eu gostaria de saber em que tags colocar o código no htmal do blog. e como realizar passo a passo esse procedimento.

Este é meu blog: http://acasadoanimecrowmix.blogspot.com/

E quero redirecioná-lo para este link: http://acasadoanimecrowmix.cz.cc/

Alguém ai poderia me ajudar? Agradeço desde já!

Assinar feed RSS de comentários neste post · TrackBack URI

Deixe seu comentário

Fechar
Envie por e-mail