在网站上60秒后弹出

时间:2011-12-01 17:57:28

标签: php javascript jquery

好吧,我试图找到一个解决方案,我认为这可行:

在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);

这有一些正文分配,因为我正在使用XTemplate,但PHP只是PHP。

现在在索引文件上,有一些JavaScript:

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

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

真相是它有效!人们可能不会导航,但这是我想要的,弹出窗口只会在访问者看到至少2页(服务器端的东西)之后才会打开。

主要问题是,我无法使函数popup();触发我显示ALERT的位置。 ALERT虽然工作正常....任何提示?

PS:

这是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');
}

4 个答案:

答案 0 :(得分:1)

您可以设置超时以在指定的时间后显示弹出窗口。这段时间可以由PHP指定,因为服务器端代码将能够通过页面视图跟踪站点上的时间量。这样,即使用户没有导航到另一个页面,弹出窗口也可以在网站上显示60秒后显示。

类似的东西:

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

您的PHP将回显弹出窗口应显示的毫秒数。

注意:当您使用alert()函数替换popthat()时,DOM可能尚未就绪,popthat()将无法正常工作,因为它找不到任何元素与您的选择器匹配。尝试在document.ready$(function() {});)上运行您的代码。

答案 1 :(得分:0)

浏览器会自动阻止在页面加载时初始化的弹出窗口,因为没有人喜欢这些类型的弹出窗口。

答案 2 :(得分:0)

执行alert()时,脚本的执行将停止。 alert()是一个阻止函数,在它继续运行之前不会发生任何事情。

答案 3 :(得分:0)

我不知道你是不是写了一个错字,但是你的函数叫做popthat(),在你的语句中你说你调用了函数popup()。你需要改变popup(); to popthat();为了这个工作,除非我说这是一个错误。

相关问题