Temat: Walczę z JS w IE i mi nie idzie. Pomóżcie

Mam problem z IE. Nie wiem, dlaczego pewne rzeczy w Microsofcie muszą utrudniać :)

Mam taki kod, który wykonuje się ok na wszystkich przeglądarkach ok. Poza IE

var i = 0;
function drop()
{
var ladunek = "0 lub 1"; // w zależności od cookie

if(i<1) { //ilość odświeżeń
if (ladunek<1) { //raz na sesję
onload=TopUp.display('http://wp.pl');
document.cookie = 'ladunek=1';
window.status = i++;
}
}
}


Kod ma się wykonać raz na sesję lub kilka razy na sesję(jak ustawię). Wszędzie wykonuje się raz, a na IE wykonuje się non stop i nie zapisuje sesji.
Jak to poprawić?
Marek Surma

Marek Surma Twórca aplikacji
internetowych.

Temat: Walczę z JS w IE i mi nie idzie. Pomóżcie

Mało powiedziałeś na temat tego co ma robić kod. Poza tym jest niekompletny. Brakuje pobierania ciasteczka. Strona jest na ramkach? Gdzie jest wywoływana funkcja drop()? O co tu właściwie chodzi? :D

Nigdzie nie zwiększasz zmiennej "ladunek" więc nie ma mowy żeby działało to:
"Kod ma się wykonać raz na sesję lub kilka razy na sesję".

Czym ma być zmienna "i"? Zabezpieczeniem przed wykonaniem funkcji więcej razy niż wartość w warunku skomentowanym jako "//ilość odświeżeń"?

Sporo niewiadomych, ale jeżeli to co masz u siebie działa poprawnie (bo to co wkleiłeś - nie może) to stawiam na to że masz niepoprawnie napisaną funkcję odczytywania ciasteczka.

Temat: Walczę z JS w IE i mi nie idzie. Pomóżcie

Funkcja drop() jest wywoływana przez <div onmouseout="drop();">
a kod to:


<script type="text/javascript">
var i = 0;
function drop()
{
var ladunek = "<?php if($_COOKIE['ladunek']) {echo $_COOKIE['ladunek']; } else { echo '0'; } ?>"; //tutaj wstawiam wartość 1 jeśli jest cookie

if(i < 1) { //ilość odświeżeń przy których ma się pojawiać popup
if (ladunek < 1) { //raz na sesję
onload=TopUp.display('http://wp.pl', {title:'wirtualna',layout:'dashboard',type:'iframe',width:717,height:550,y:15,overflow:0,modal:1,shaded:1,overlayClose:1,resizable:0} );;
document.cookie = 'ladunek=1';
window.status = i++;

}
}
}
</script>


Skrypt ma wywołać okno popup ze stronką w ramce.
Faktycznie ładunek powinienem zwiększyć przy chęci większej ilości wywołań na sesję.

Problem jest głównie w i++.

W IE przy próbie opuszczenia kursorem DIVa zawsze jest wywoływane to okno, a powinno być tylko raz. Okazuje się, że zabezpieczenie przed ponownym wywołaniem okna nie działa na IE.
Mirosław Ratman

Mirosław Ratman Manager IT,
Architekt systemów
@Avast, Founder
@aSyncro ...

Temat: Walczę z JS w IE i mi nie idzie. Pomóżcie

Arkadiusz Zielazny:
document.cookie = 'ladunek=1';

czy aby cookie zostało ustawione i było dostepne w document nie potrzeba przypadkiem przeładować strony ?

Jesli uzywasz IE > 6 to spróbuj z localstorage



Wyślij zaproszenie do