Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal tenho uma pagina que fica dentro de frame, esta pagina é carregada via ajax ela é responsável por mostra as mensagem de um chat
para o usuários.
A questão que o código que eu uso em ajax e xml para fazer esta atualização deixa a barra de rolagem presa sempre no final do conteúdo, quando o usuário vai ver a mensagens antigas ela volta para o final assim que a pagina é carregada.
Gostaria que vocês me ajudasse nessa questão, caso alguém saiba de outra maneira para tratar melhor esta situação por exemplo usando ajax com jquery ou json por favor deixem o código para que possamos analisar juntos a questão.
Vou esta deixando o meu código para agente analisar juntos.
<script type="text/javascript">
function Ajax(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',3000);
}
}
xmlHttp.open("POST","conversa_sup.php",true); // aqui configuramos o arquivo
xmlHttp.send(null);
}
window.onload=function(){
setTimeout('Ajax()'3000); // aqui o tempo entre uma atualização e outra
}
var intervalo = setInterval("document.getElementById('ReloadThis').scrollTop = 1000000;", 5000);
</script>rdpacato
Então frame não é não eu já declarei as propriedades dele certinho, o que controla a barra e rolagem e faz ela fica no final da pagina é este pedação do código que esta no código junto o ajax
var intervalo = setInterval("document.getElementById('ReloadThis').scrollTop = 1000000;", 5000);
depois desse tempo que esta declarado "5000" a barra de rolagem desse e fica no final da pagina, queria tratar isso melhor de uma forma mais amigável e agradável para usuário.
Entendi... tenta fazer uma função que seta o valor dele ao carregar essa outra função...
Damon...
já conseguiu resolver?
Use:
location.hash = "id-do-elemento";
// ou
$('#id-elemento').attr('tabindex', -1).focus()
Você pode usar o jquery para pegar o ultimo elemento e da um focus nele
Cara, tem que ver se o problema não está no seu frame... melhor é trabalhar com iframe... mostra tbm a parte do código do frame...
Estou trabalhando com iframes tbm e apanhei bastante, principalmente com reajuste do tamanho de tela.