Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera,
boa noite.
Estou com sérios problemas com o uso do ajax. Estou fazendo um site, e o cliente pediu que tivesse um player de música no site dele. Não poderia usar link normal, pois se não a música começaria denovo.
Optei por usar ajax, fugindo de iframe. Nunca havia trabalhado com ele antes.
Entre todos os problemas que tive(lightbox) e etc, hoje, quando pensava que tudo estava funcionando e fui colocar o site no ar, o ajax para de funcionar no IE. Mas só no IE do Cliente e do meu chefe, parece brincadeira né?!
O site é feito no sistema wordpress, e já funcionava online, no entanto, bastou eu tirar a função que verifica se o usuário está logado ou não, que o problema começou. Vale dizer que que o site é composto por um slide de fundo(ocupando a tela toda) em flash, um player(flash) e as páginas posicionadas sobre esse fundo(css). No entanto no ie do meu chefe, pude verificar que o flash do player não estava chamando o XML da música, e de uma amiga minha também. Logo, pode-se deduzir que se o ajax tem problema, o player também, ou vice-versa, apesar de nenhum ter alguma relação entre o outro.
Procurei um pouco e acredito que o problema seja em alguna filtros de segurança do IE, quando os mesmos estão ativados.
O engraçado é que se eu chamo um página interna separada, por exemplo: http://www.**.com/quem-somos, o ajax funciona normalmente. Sendo que ele chama o mesmo header, tudo.
A minha pergunta é, existe uma solução ou algum tipo de função que diga para caso a página não for carregada em ajax abra como link normal??
Dêem um olhada no código:
$(".menu li a").click(function(event) {
event.preventDefault();
var toLoad = $(this).attr('href')+' #conteudo';
$('#load').remove();
$('body').append('<span id="load"></span>');
$('#load').fadeIn('slow');
$("#conteudo").slideUp('slow', function() {
$("#conteudo").load(toLoad, function () {
$(this).slideDown('slow',hideLoader(), slideProdutos(), resizeSide() );
});
});
function hideLoader() {
$('#load').fadeOut('slow');
}
});
Explicando:
Eu comecei de maneira errada, e fui me complicando cada vez mais que tentava tapar buraco.
Reparem:
eu tenho o site normal, onde todas as páginas abrem com a função acima, porém eu tenho uma página Produtos, que deve usar a mesma função, daí que eu chamo "slideProdutos()". Estúpido né?! É, como falei, comecei tudo errado.
O "resizeSide()" é apenas para controlar a altura da barra lateral, que deve ser 100%. Pórém como ela tem um "buraco", que pediram que pulasse o menu, não funcionaria com css, logo coloquei o javascript que sempre controla a altura dela.
Seria muito mais fácil com a imagem do layout, no entanto eu estou em casa, e só tenho essa imagem no trabalho.
Espero muito que vocês possam me ajudar, qualquer coisa, por favor. Que eu não aguento mais esse site.
Att. Lucas
Carregando comentários...