2011-12-01 76 views
1

嗯,我正在试图达成一个解决方案,我想这可能工作:60秒后在网站上,弹出

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

这一些机构指派因为我m与XTemplate一起工作,但PHP只是PHP。

现在中的索引文件,一些JavaScript代码:

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

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

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

主要的问题是,我不能让功能popup();触发我的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'); 
} 

回答

1

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

喜欢的东西:

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

你的PHP将回声的毫秒数,直到弹出窗口应显示。

的注意事项:当您更换alert()popthat()功能DOM可能不准备和popthat()将无法​​工作,因为它没有找到符合您选择的任何元素。尝试在document.ready$(function() {});)上运行您的代码。

0

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

+0

我会为您添加更多信息以查看弹出窗口。这是jquery制作的,不是一个真正的弹出 – Souza

+2

你不认为这可能是相关的信息? – ceejayoz

+0

你的意思是它是一个浮动div覆盖,而不是window.open()类型的东西? –

0

当您执行alert()时,脚本的执行将停止。 alert()是一个阻塞函数,在它移动之前什么都不会发生。

0

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