webForumDet fria alternativet
Logga in / Bli medlem

Scrolla då ajax laddat klart

JavaScript

7 svar · 702 visningar · startad av Gaski

Medlem sedan juni 2000310 inlägg
Frågan#1

Jag önskar scrolla ner i en div (som fylls av en ajax-funktion) då den är färdigladdad. Bifogad kod känns som om det skulle fungera, men det gör den inte. Hur kan man åstakomma detta?

function updatePlan() {
  var xmlHttp
  try{
    xmlHttp=new XMLHttpRequest();
  }catch (e){
    try{
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e){
      try {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){
        alert("Your browser does not support AJAX!");
        return false;
      }
    }
  }
  xmlHttp.onreadystatechange=function(){
    if(xmlHttp.readyState==4) {
      document.getElementById('plan').innerHTML=xmlHttp.responseText;
      document.getElementById('mainContent').scrollTop = 200;
    }
  }                                                                             
  url = "plan.php"
  xmlHttp.open("GET",url,true)
  xmlHttp.setRequestHeader(
        "Content-Type",
        "text/html; charset=iso-8859-1");
  xmlHttp.send(null)
Medlem sedan dec. 20025 483 inlägg
#2

Hur ser HTML-koden ut?

Medlem sedan juni 2000310 inlägg
#3

Hmm, den är lång, den vill du inte se :)

plan är en div som ligger i mainContent, som också är en div. Det är mainContent som jag vill scrolla när texten har laddats in i plan.

Medlem sedan dec. 20025 483 inlägg
#4

Följande fungerar för mig:

<form>
 <input type=button onclick="document.getElementById('d').scrollTop=20">
</form>
<div id="d" style="background:red;overflow-y:auto;height:50px;width:60px">
 <div style="background:green">a<br>b<br>c<br>d</div>
</div>
Medlem sedan juni 2000310 inlägg
#5

Ja, men det är inte om scrollTop fungerar eller ej som är frågan. Frågan är hur jag ska kunna köra en funktion 'onComplete'. Dvs när den andra är klar.

Medlem sedan dec. 20025 483 inlägg
#6

Du vill köra en funktion när onreadystatechange är klar?

Medlem sedan juni 2000310 inlägg
#7

Precis

Medlem sedan dec. 20025 483 inlägg
#8

Lägg in anropet i

  xmlHttp.onreadystatechange=function(){
    if(xmlHttp.readyState==4) {
      document.getElementById('plan').innerHTML=xmlHttp.responseTe  xt;
      document.getElementById('mainContent').scrollTop = 200;
      [b]code goes here...[/b]
    }
  }
392 ms totalt · 4 externa anrop · v20260731065814-full.05830320
121 ms — deklarationer (db)
124 ms — hämta statistik (db)
133 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)