好吧,我试图找到一个解决方案,我认为这可行:
在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');
}
答案 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();为了这个工作,除非我说这是一个错误。