Bardzo proszę o pomoc, gdyż już od 2 tygodni staram się znaleźć jakieś rozwiązanie mojego problemu. I jak na razie zlasowałem sobie mózg i nic więcej.
Oto opis problemu.
Kombinuję stronkę sklepu internetowego. Działanie sklepu oparte jest na ajxie bez żadnej biblioteki w phpie czy js. Jak dotąd szło dobrze, gdybym nie sprawdził jak wygląda to w ie7.
Mam taki skrypcik dotyczący koszyka, może nie śmiga jeszcze do końca, ale to dlatego że stanąłem w miejscu przez ten problem.
daję w znaczniku php bo jak widzę js nie ma:). Proszę o cierpliwość jestem raczej swieży:)
Kod
Koszyk = {};
Sprawa w FF wygląda tak że koszyk śmiga.
A teraz problem.
Otórz pod ie7 w momencie gdy w koszyku już posiadam produkty mam możliwość ich usuwania.
Problem pojawia się w tej linijce
Kod
this.suma_cena = this.suma_cena - del_node.parentNode.childNodes[2].firstChild.nodeValue;
gdyż z jakiś powodów i nie wiem skąd ie7 dodaje dodatkowego noda - nodeType = 3(text) z wartością pustą a dokładniej spacją gdyż sprawdziłem charCodeAt(0)=32.Lista produktów w kodzie html czy xhtml wygląda następująco:
Jeśli chodzi o wstawianie nowych produktów przez moją funkcję koszyka Koszyk.dodaj() to juz sprawdzałem czy nie ma zbędnych spacji pomiędzy
Kod
var lista_kosz = "<div id='kosz_prod_" + id_kosz + "'><div>" + this.l_p_kosz + "</div><a href=#kosz_prodid=" + id_kosz + ">" + nazwa_kosz + "</a><div>" + cena_kosz + "</div><div>" + ilosc_kosz + "</div>" + this.usun_prod_ico + "</div>";
?>
i kombinowałem różne inne mozliwości.?>
Sytuacja jest taka że w najlepszym podejściu jeśli usuwam produkty po kolei czyli od ostatniego do tego pierwszego na liście to problem sie nie pojawia. Ale nie zawsze. Ale zawsze jest tak że jeśli chce usunąć pierwszy produkt na liście to jest lipton. I zawsze jest tak że wszystkie sie usuną tylko nie pierwszy.
Czyli w 90% pierwszy produkt zostaje gdyż ie7 wywala błąd no i zatrzymuje dalsze działanie skryptu który i tak juz by nie śmigał bo w miejscu gdzie nodem powinien być div z ceną pojawia się nie wiadomo skąd nowy node z wartościa spacji.
Odpalałem skrypt pod firebugiem i nodów jest tyle ile trzeba. odpalałem pod debugerrem pod ie co się zowie IE Web Developer i co śmieszne on też nie widzi w podglądzie kodu tego pustego noda.
Więc ogólnie zgłupiałem.
Tyle na ten temat.
Proszę o pomoc bo przeszukałem cały internet heheheh i jak na razie to znalazłem milion innych bugów i kombinacji, lecz żadna mi nie pomogła.
Pozdrawiam