Avatar billede kongknabe Nybegynder
28. februar 2006 - 16:05 Der er 1 kommentar

AJAX problem.

Hejsa.. Sider og er begyndt at rode lidt med noget AJAX men har et problem jeg ikke kan løse... Bruger følgende kode:



var loadedobjects=""
var rootdomain="http://"+window.location.hostname

function ajaxpage(url, containerid){
  var page_request = false
  if (window.XMLHttpRequest) // if Mozilla, Safari etc
    page_request = new XMLHttpRequest()
  else if (window.ActiveXObject){ // if IE
    try {
      page_request = new ActiveXObject("Msxml2.XMLHTTP")
    }
    catch (e){
      try{
        page_request = new ActiveXObject("Microsoft.XMLHTTP")
      }
      catch (e){}
    }
  }
  else
    return false

  page_request.onreadystatechange=function(){
    loadpage(page_request, containerid)
  }

  page_request.open('GET', url, true)
  page_request.send(null)

}

function loadpage(page_request, containerid){
  if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){


// Her vil jeg gerne have at den lige holder en pause indtil alt den er i gang med at loade er fuldt hentet - så skal den gå videre....!

    document.getElementById(containerid).innerHTML=page_request.responseText
    initImage();
  }
}


Mit problem er kort fortalt at jeg gerne vil have den til først at ændre innerHTML af den givne div NÅR den har loadet alt det den vil smide derind... - Har kommenteret det ud i koden :-) - Altså en form for onload event smidt ind midt i det hele !?

( Er nybegynder mht. Javascript )
Avatar billede themaster Nybegynder
08. november 2007 - 13:24 #1
Jeg har æavet dette lille scirpt. det minder meget om dit, men med et par små ændringer -> Se kommentarene i koden.

/*
strURL : den url du vil lave en forespørgelse på.
div_id : id-værdien af det element der skal indeholde resultatet af forespørgelsen.
*/

function postRequest(strURL, div_id) {

    var xmlHttp;

        if (window.XMLHttpRequest) { // Mozilla, Safari, ...

        var xmlHttp = new XMLHttpRequest();

      } else if (window.ActiveXObject) { // IE

        var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

      }
                 

    xmlHttp.open('POST', strURL, true);
       

    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');


    xmlHttp.onreadystatechange = function() {
   
    if (xmlHttp.readyState < 4) {
       
        //her kan du tilføje hvad der skal vises mens du venter...
        document.getElementById(div_id).innerHTML = "Loading page!!! ... "+xmlHttp.readyState+"";
        //her slutter output i vente-tilstanden.
    }
        if (xmlHttp.readyState == 4) {
           
            updatepage(xmlHttp.responseText, div_id);

        }
       
    }

    xmlHttp.send(strURL);

        }
       

        function updatepage(str, div_id){

    document.getElementById(div_id).innerHTML = str;

        }


//eksempel på function der foretager flere postRequests
        function showSS(ss_id, content_left, content_right){


    var url_left="run.php?gui_id=0&ss_id="+ss_id;
    var url_right="run.php?gui_id=1&ss_id="+ss_id;

    postRequest(url_right, content_right);
    postRequest(url_left, content_left);

        }

Håber du kan bruge det..

//themaster
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester