Cóż, starałem się osiągnąć rozwiązanie i pomyślałem, że to może pracować:

W pliku PHP:

$liguem = getdate();

$liguemoff = $_COOKIE['liguemoff'];
$liguemon = $_COOKIE['liguemon'];

if(empty($liguemoff)){
    setcookie('liguemoff',$liguem[0],time() + (50000));
}

setcookie('liguemon',$liguem[0],time() + (20000));



$body->assign("COOKIE2", $liguemoff);
$body->assign("COOKIE3", $liguemon);

Ma to pewne przypisanie ciała, ponieważ pracuję z XTemplate, ale PHP to tylko PHP.

Teraz w pliku indeksu niektóre javascript:

var cookie2 = {COOKIE2};
var cookie3 = {COOKIE3};

if( cookie3-cookie2 > 60){
    alert('alerta');
};

Prawda jest taka, że działa! Ludzie mogą nie być nawigującym, ale chcę, pojawienie się otworzy się tylko po tym, jak odwiedzający zobaczy co najmniej 2 strony (rzecz serwera).

Głównym problemem jest, że nie mogę wykonać funkcji popup(); do wyzwolenia, gdzie wystawiam alert. Alert działa jednak w porządku .... jakiekolwiek wskazówki?

PS:

To jest funkcja popthat();:

function popthat(){
    $("#darkside").css('opacity','0.3').fadeIn('slow');
    $("#darkside").click(function () { 
    $(this).css('opacity','1').fadeIn('fast');
    $("#liguem").hide();
    });
        $("#liguem").corner();
    $("#liguem").hide();
    $("#liguem").delay(200).css('visibility','visible');
    $("#liguem").fadeIn('fast');
}
1
Souza 1 grudzień 2011, 21:57

4 odpowiedzi

Najlepsza odpowiedź

Możesz ustawić limit czasu, aby wyświetlić popup po określonym czasie. Ta ilość czasu może być nakazana przez PHP, ponieważ kod po stronie serwera będzie w stanie śledzić ilość czasu na stronie za pomocą widoków stron. W ten sposób popup może wyświetlać po 60 sekundach na stronie, nawet jeśli użytkownik nie jest nawigujący na inną stronę.

Coś jak:

setTimeout(popthat, <?php echo $_COOKIE[...]; ?>);

Twoja PHP echroniczna byłaby liczbę milisekund, aż pojawi się okienko.

Uwaga: Po wymianie alert() z funkcją popthat() Dom może nie być gotowy, a popthat() nie będzie w stanie pracować, ponieważ nie znajdzie żadnych elementów, które pasują do Twojego Selektory. Spróbuj uruchomić kod na document.ready ($(function() {});).

1
Jasper 1 grudzień 2011, 18:07

Przeglądarki automatycznie blokują popup inicjowane na obciążeniu strony, ponieważ nikt nie lubi tego rodzaju popup.

0
ceejayoz 1 grudzień 2011, 17:58

Kiedy wykonasz alert() wykonanie skryptu zatrzymuje się. alert() to funkcja blokowania i nic się nie wydarzy, dopóki nie zostanie przeniesiony.

0
Brad 1 grudzień 2011, 18:06

Nie wiem, czy właśnie zrobiłeś literówkę, ale Twoja funkcja nazywa się PopThat (), aw twoim oświadczeniu powiedziałeś, że nazywałeś popup funkcji (). Musisz zmienić popup (); popfat (); Aby to pracować, chyba że tak powiedziałem, że to błąd.

0
Jon 1 grudzień 2011, 18:10