ugrás a tartalomhoz

Location() ugrás AJAX-os betöltés után

Anonymous · 2006. Jún. 28. (Sze), 13.41
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:

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;
  }
}
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
 
1

Ide ne használd, vagy bővítsed ki

Jano · 2006. Jún. 28. (Sze), 14.38
Ajaxnak az elpőnye a hátránya is lehet. Az, hogy a betöltött tartalom ugyan azon az oldalon jelenik meg azt jelenti, hogy ugyanaz az url is és a vissza gomb sem működik.

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.
2

Közvetlen link

Anonymous · 2006. Jún. 28. (Sze), 14.45
Igen, tudom. De azt meg tudom oldani, mert lesz egy közvetlen link opció. Esetleg ötlet nincs a dolog megoldására?
3

Megoldottam

Methos · 2006. Jún. 28. (Sze), 15.16
Időközben rájöttem a megoldás kulcsára (megkerülve a JS problémát). Ha valakit érdekel, elmondom, viszonylag elég egyszerű.
4

jquery-vel

TeeCee · 2006. Jún. 28. (Sze), 15.20
Hali! :o)

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).
5

Köszi

Methos · 2006. Jún. 28. (Sze), 15.53
Köszi, de közben megkerültem a problémámat, és sikerült megoldanom :)
6

Methos!!

Anonymous · 2006. Júl. 28. (P), 18.01
Szia Methos!
Elküldenéd a címemre a megoldást ? életet mentenél vele :) köszi
ch0kee##kukac##citromail.hu