Być może ktoś z was się już spotkał z czymś podobnym, otóż mam problem z Operą, a dokładniej ze zwracaniem treści przy użyciu responseText.
W skrócie działanie skryptu wygląda tak:
- kliknięcie w link
- odwołanie ajaxowe do pliku i zwrócenie zawartości pliku
- wgranie pliku do odpowiedniego diva
W FF, IE, Safari wszystko ładnie pięknie, zwracany zostaje faktyczny tekst, natomiast problem pojawia się w Operze, która zwraca... całą stronę - a raczej jej kopię (łącznie z tagami html, meta, body itd), który następnie wkładany jest w danego diva.
Kod nie jest specjalnie skompikowany, oto on:
<?php var newConn = NewXmlHttp(); var url="?id="+id+"&lid="+lid; myRand = parseInt(Math.random()*99999999); newConn.open("GET","jakisfolder/ajax/plik.php"+ url +"&rand="+ myRand, true); newConn.onreadystatechange = function(){ if(newConn.readyState==4){ if(newConn.status==200){ var odp = document.getElementById('bottom'); odp.innerHTML = newConn.responseText; } } }; newConn.send(null); ?>
Natomiast plik php wyrzuca wszystko z wykorzystaniem echo..
Czy ktoś wie co może byc przyczyną tego, że Opera zwraca całą stronę?