|
|
#1 (permalink) |
|
AJAX & Cross-Browser Sorunu
Merhaba arkadaşlar, geliştirmekte olduğum bi web uygulamasının alışveriş sepeti kısmı için ajax kullanmak istedim, kullandım da ama şöyle bir sorun var;Kod:
function dataLoaded(data)
{
var xD = data.responseXML.documentElement;
}
xD.firstChild.nodeName -> internet Explorer'da ilgili node'un adını doğru şekilde döndürürken, firefoxta #text döndürüyor... ayrıca, xD.firstChild.firstChild.nodeValue yine ie'de doğru olarak node'un içindeki text'i gösterirken, Firefox'ta null döndürmekte. cross-browser için önerisi olan?
__________________
http://scriptman.deviantart.com |
|
|
|
|
|
|
#3 (permalink) |
|
Re: AJAX & Cross-Browser Sorunu
XML'i göndermen daha kolaylaştırır. Ama bir öneri olarak eğer XML dökümanından elde ettiğin veriler bir döngü içerisindeyse veya bir tane ana elemana bağlı tek bir satırdan bile ibaretse, bu verileri doğrudan firstChild gibi değil de, for döngüsü içinde kullanman daha bi kolay olacaktır. Örnek verecek olursak
XML: Kod:
<root> <sub id="1"> <sub_sub id="1">test value 1</sub_sub> </sub> <sub id="2"> <sub_sub id="2">test value 2</sub_sub> </sub> </root> JavaScript: Kod:
function dataLoaded(data){
var xD = data.responseXML.documentElement;
var e = xD.getElementsByTagName('sub');
for(var i=0;i<e.length;i++){
document.body.appendChild(document.createTextNode(e[i].firstChild.nodeValue));
}
}
__________________
onurkose.com |
|
|
|
|
|
|
#4 (permalink) |
|
Re: AJAX & Cross-Browser Sorunu
@nothingrows Teşekkür ederim, sorunu verdiğin örnekten yola çıkarak çözdüm
![]() Şimdi tek sorun onreadystatechange event'ının internet Explorer'da tetiklenmemesi ilginç yahu, Firefox'ta sorun olmuyor da ie de neden bu kadar uğraşıyoruz..Bunun için başkaldıralım ![]() Aşağıdaki kod parçası, sepetteki bir ürün adedi değiştiğinde / yeni eklendiğinde dinamik olarak sepetin olduğu tabloyu yazdıran kod. Fonksiyonun tamamını göndermedim buraya kadar olan kısımda sorun yok (burada da yok aslında Firefox'ta çalışıyor) acaba ie'ye gıcık bişiler mi yapmışım ne dersiniz? Kod:
var container = document.getElementById("cartContainer");
var cart = document.createElement("table");
cart.setAttribute("class","sepet");
cart.setAttribute("id","cartList");
cart.setAttribute("width","100%");
cart.setAttribute("border","0");
var tBody = document.createElement("tbody");
//items, XML'den okudugum sepet icindeki urunleri tutan bir array..
for(var i=0;i<items.length;i++)
{
var itemRow = document.createElement("tr");
var deleteIcon = document.createElement("td");
deleteIcon.setAttribute("width","20");
deleteIcon.innerHTML = "<a href=\"JavaScript:removeCartItem("+items[i].getAttribute("id")+")\"><img src=\"img/delete.png\" alt=\"Sil\" border=\"0\" /></a>";
var itemName = document.createElement("td");
itemName.innerHTML = "<small>"+items[i].firstChild.nodeValue+"</small>";
var itemAmount = document.createElement("td");
itemAmount.innerHTML = "<input type=\"text\" id=\"count_"+items[i].getAttribute("id")+"\" value=\""+items[i].getAttribute("count")+"\" style=\"width:30px;\" />";
var updateIcon = document.createElement("td");
updateIcon.setAttribute("width","16");
updateIcon.innerHTML = "<a href=\"JavaScript:updateCartItem("+items[i].getAttribute("id")+","+items[i].getAttribute("prodId")+")\"><img src=\"img/refresh.ico\" width=\"16\" height=\"16\" border=\"0\" alt=\"Güncelle\" /></a>";
itemRow.appendChild(deleteIcon);
itemRow.appendChild(itemName);
itemRow.appendChild(itemAmount);
itemRow.appendChild(updateIcon);
tBody.appendChild(itemRow);
}
cart.appendChild(tBody);
container.appendChild(cart);
__________________
http://scriptman.deviantart.com |
|
|
|
|
|
|
#5 (permalink) |
|
Re: AJAX & Cross-Browser Sorunu
Bu kodlarda bir sorun göremedim ama onreadystatechange ile bir alaka da kuramadım açıkçası, sadece arraydaki verileri bir table içine yeni satır olarak ekletiyorsun. Bence -eğerki bahsettiğin hata ile alakalı ise- sorun bundan önceki kısımlarda ya da xmlhttprequest nesnesini kullandığın fonksiyonunda. Eğer o fonkisyonu buraya yazarsan ve kullanışlı değilse, sana kolay ve kullanışlı bir fonksiyon verebilirim.
__________________
onurkose.com |
|
|
|
|
|
|
#6 (permalink) |
|
Re: AJAX & Cross-Browser Sorunu
Tamamdır hallettim, sorun PHP'de imiş..
![]() output buffering'i açmadan header bilgisi gönderdiğim için ie de hata veriyomuş. kodun başına ob_start(); ekleyince düzeldi ![]() Çok ilginç Firefox'ta bu hatayı vermiyormudur nedir.. )
__________________
http://scriptman.deviantart.com |
|
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
Zoque'a hoşgeldiniz!