Autor | Zpráva | ||
---|---|---|---|
RiZe Profil |
#1 · Zasláno: 16. 10. 2007, 14:12:58
Zkoušel jsem dát dohromady nějaký jednodušší AJAX refresh, jelikož chci ne moc viditelně a bez cvakání (IE) obnovovat stránku chatu, sesmolil jsem tedy tento kód.
Soubor ajax.php načte textový soubor a vypíše jeho obsah do výstupu. Soubor je v kódování windows-1250. Zkoušel jsem alertem vypisovat alespoň status a state, ale nic nevypisovalo, možná ani nefunguje to cyklení, i když jednou už to zacyklené bylo ale zas to nic nevypisovalo. Dělal jsem to částečně odsud a stejně to neběhá, ví někdo kde může být chyba? Tato aplikace poběží jen v IE. |
||
peta Profil |
#2 · Zasláno: 16. 10. 2007, 16:26:07
RiZe
Odkaz na tvuj soubor? Co ti na tom nebeha? Co vypisuje JS konzola? Co vypisuje chybove hlaseni PHP error_reporting ? Jaky PHP soubor ti vygeneruje chat? Treba mas chybu ve zdrojovem kodu toho TXT/XML. Treba mas chybu v JS kodu, coz se nejlepe zjistuje JS konzolou, kterou ma kazdy kvalitni www prohlizec pracujici s JS. Take muzes mezi jednotlive casti JS dat Alert a sledovat, ktery alert se ti zobrazi a ktery uz ne. Take muzes vychazet z toho, ze na te strance to funguje, tak podle ni to zkopirovat ze sourcecode. Muzes zkusit: http://www.volny.cz/peter.mlich/www.htm#mssub16 ajax http://www.volny.cz/peter.mlich/www.htm#msub13 ajax chat |
||
Chamurappi Profil |
#3 · Zasláno: 16. 10. 2007, 16:33:06
Reaguji na RiZe:
„document.getElementByTagName('body')“ Tahle metoda neexistuje. Funguje jen document.getElementsByTagName a vrací pole, tudíž asi chceš: document.getElementsByTagName('body')[0].innerHTML = http.responseText; |
||
RiZe Profil |
#4 · Zasláno: 16. 10. 2007, 17:05:46 · Upravil/a: RiZe
Nakonec jsem to upravil, jelikož to běhá pod IE tak použil pár jeho kravinek a rozběhal to. Kód chatu a zároveň AJAX obsluhy vypadá takto:
chat.php
ajax.php
Zůstává nyní poslední problém. Chtěl bych, aby byl chat vždy posunut (i po refreshi dolů), k čemuž je tam name="end". Stránka chatu je vložena do jiné stránky iframem který má parametr src="chat.php#end". Nyní to ale nefunguje. |
||
peta Profil |
#5 · Zasláno: 17. 10. 2007, 08:11:16
RiZe
jakpsatweb - css - position S tim name je to sice pekne, ale opet schazi zakladni scripty. Odkaz na stranku by to vyresil. toto: chat.php#end to funguje bez problemu, problem je pak v tom ostatnim. Pokud mas toto v souboru ajax.php <?php require "./functions.php"; /** * Vypsání obsahu chatu */ echo acin_output(acin_readfile('acin_shouts.txt')); ?> <a name="end"></a> ... pak ti tam nejak schazi ta cast chat.php. Cili neni v cem hledat chybu. Jinak, JS konzolou bys dospel k zaveru, viz Chamurappi, zes mel spatne pojmenovanou funkci document.getElementsByTagName('BODY'). Tez JS konzolou zjistis, ze document.body.innerHTML neni tak spolehlive pri ruznych doctype a ruznych prohlizecich. Zkusil bych zkombinovat obe metody. body = document.body ? document.body : document.getElementsByTagName('BODY') ? document.getElementsByTagName('BODY') : null; |
||
RiZe Profil |
#6 · Zasláno: 17. 10. 2007, 13:48:49
Toto jsou jediné dva scripty, funkce acin_output odstraní slashování, acin_readfile vrací obsah souboru. Pak už je jen hlavní stránka která obsahuje <iframe src="chat.php#end" width="199" height="300" ... Soubory mám na localhostu a nyní ani nejsem na svém PC.
|
||
Časová prodleva: 17 let
|
0