Location() ugrás AJAX-os betöltés után
Hello!
Éppen egy blog motort írok, amely használ AJAX-ot is. Eddig semmi gond, a bejegyzések, kommentek betöltése, minden szép is jó. A probléma ott kezdődik amikor az egyik kommentre akarok ugrani. Ugyebár ezt pl egy "#2"-vel meg is tehetném, de az a gond, hogy AJAX-al betöltött tartalom esetén ez nem működik.
Kitaláltam, hogy akkor miután betöltöttem a kommenteket egy location('#2')-vel odaugrok a 2-es ID-jű kommentre. Ez működne is, csak az a probléma hogy a location még azelőttlefut, hogy az AJAX a tartalmat betöltené a divbe.
Tehát a lényeg az, hogy hogyan tudnám azt elérni, hogy a location csak a div betöltése után fusson le?
Íme a kód:Az eredeti AJAX-os kódot nem én írtam egy jóbarátomtól kaptam. Nos megpróbáltam azt, hogy a document.getElementById("content").innerHTML = AJAX_R.responseText; után adom meg a location-t. Ez így okés is volt, viszont ha az AJAXProcess_Content()-nek adok egy bemeneti változót, pl: AJAXProcess_Content(komment_id), akkor már nem hajlandó működni. Pontosabban tölt tölt, de nem jön be a tartalom. Ebben szeretném a segítségeteket kérni.
A honlap: http://fishblog.fishworks.hu (Bal oldalt van a kommentek rész)
Üdv: Methos
■ Éppen egy blog motort írok, amely használ AJAX-ot is. Eddig semmi gond, a bejegyzések, kommentek betöltése, minden szép is jó. A probléma ott kezdődik amikor az egyik kommentre akarok ugrani. Ugyebár ezt pl egy "#2"-vel meg is tehetném, de az a gond, hogy AJAX-al betöltött tartalom esetén ez nem működik.
Kitaláltam, hogy akkor miután betöltöttem a kommenteket egy location('#2')-vel odaugrok a 2-es ID-jű kommentre. Ez működne is, csak az a probléma hogy a location még azelőttlefut, hogy az AJAX a tartalmat betöltené a divbe.
Tehát a lényeg az, hogy hogyan tudnám azt elérni, hogy a location csak a div betöltése után fusson le?
Íme a kód:
var AJAX_R = false;
function ajax(func,message){
document.getElementById("content").innerHTML = '<div class="ajax-loading"><!-- Betöltés --></div>';
if (window.XMLHttpRequest){
AJAX_R = new XMLHttpRequest();
}
else if(window.ActiveXObject){
AJAX_R = new ActiveXObject("Microsoft.XMLHTTP");
}
if(func == 'bejegyzesek') { AJAX_R.onreadystatechange = AJAXProcess_Content; }
if(func == 'kommentek') { AJAX_R.onreadystatechange = AJAXProcess_Content; }
AJAX_R.open("GET","funkciok/ajax.php?func="+func+"&"+message,true);
AJAX_R.send(null);
}
function AJAXProcess_Content() {
if (AJAX_R.readyState == 4) {
document.getElementById("content").innerHTML = AJAX_R.responseText;
}
}
A honlap: http://fishblog.fishworks.hu (Bal oldalt van a kommentek rész)
Üdv: Methos
Ide ne használd, vagy bővítsed ki
Ha egy olvasód szeretné az egyik haverjának elküldeni az adott bejegyzésre mutató linket, vagy csak linkelni egy adott bejegyzésre akkor így nem fog neki menni.
Közvetlen link
Megoldottam
jquery-vel
A http://jquery.com/docs/ajax/ oldalon a jquery AJAXrészének van dokumentációja. Itt a load(URI,Params,Callback) résznél találod a szükséges és lehetséges megoldást ;) A Callback-ba lehet megadni, hogy mit csináljon az AJAX-letöltés után.
Én most AJAX-osítom a renceremet, és ezt használom (igaz, callback nélkül egyenlőre).
Köszi
Methos!!
Elküldenéd a címemre a megoldást ? életet mentenél vele :) köszi
ch0kee##kukac##citromail.hu