[ hrib @ 05.12.2010. 10:59 ] @
Napravio sam ajax/jquery skriptu kojom rotiram slike i imam problem u ie8. Stvar funkcionira tako da postavim setInterval kojim pozivam funkciju za random rotiranje, dok korisnik ne klikne na gumb za sljedeću (tada se radi clearInterval i dalje korisnik sam lista - to radi ok). Xml datoteka mi se kreira pomoću php-a, funkcijom koja prima kao vrijednost parametra 0 za random odabir slike. Problem je sa internet explorerom 8, koji kad se bira random slika, uvijek odabere istu. Primijetio sam da ako u drugom tabu pozovem php datoteku koja generira xml, te mi se generira npr. slika broj 5, prebacim se na tab sa webom, u ie8 će random odabrati baš sliku 5. Tako i za sve ostale primjere. Da pokušam pojasniti što sam zaključio. Moguće je da ie8 ne radi novi request za već učitanu istu datoteku? Ili radi neki cache xml datoteke, i ako se pozove ista xml datoteka on je ne učitava ponovno? Putanja do datoteke ako je odabran random je ovakva Code: var xml_dat = base_url + "index.php/header_slike_xml/index/0"; Kod klika na sljedeću poziva se uvijek druga datoteka, i stvar funkcionira. Code: var xml_dat = base_url + "index.php/header_slike_xml/index/" + sljedeca; Ovu varijablu sljedeća dobivam iz xml-a (uzimam broj trenutne slike i uvećavam za 1). U nastavku dio ajaxa: Code: function new_XHR() { // kreiranje novog xml http requesta var xhr; try { xhr = new ActiveObject("Msxml2.XMLHTTP"); } catch(e) { try { xhr = new ActiveObject("Microsoft.XMLHTTP"); } catch(E) { xhr = false; } } if (!xhr && typeof XMLHttpRequest != 'undefined') xhr = new XMLHttpRequest; return xhr; } function AjaxHeaderSlike(tipa) { var tip = tipa; // 1 - sljedeća, 0 - random myxhr = new_XHR(); if (tip == 0) { var xml_dat = base_url + "index.php/header_slike_xml/index/0"; } else if (tip == 1) { sljedeca++; var xml_dat = base_url + "index.php/header_slike_xml/index/" + sljedeca; } myxhr.onreadystatechange = AjaxHeaderSlikeCb; myxhr.open('GET', xml_dat); myxhr.send(null); } Kako riješiti ovaj problem? Da napomenem kako skripta uredno radi u ff, operi i safari-u. |