如果不是一个页面,而是只有两个页面A和B,这两个页面可以用超链接相互切换,但是记录这两个页面的总时间,到时间后跳转到另外页面C,这该如何实现呢? 
用JavaScript在AB两个页面中setTimeout的话,每次换到另外页面总会重新计时的,不知道用php能不能实现,求高手赐教

解决方案 »

  1.   

    说下思路
    两个页面互换的链接使用JAVASCRIPT来控制,链接调用一个JS函数,比如timer()函数。
    两个页面中都拥有一个记录总时间的JS变量,设为timeAll变量。当进行跳转的时候在timer函数中将此页面的逗留时间,加上timeAll变量的值作为timeAll变量的最终值,并将timeAll变量使用GET方法传递到另一页面(当然是使用JS的timer函数进行跳转)。
    进入下一个页面后再次进行计时,使用PHP来动态初始化JS变量,var timeAll=<?php echo $_GET['timeAll']?>;这样就保存了上一个页面停留的时间(两个页面均需要这样做,真正初始化时需要判断$_GET['timeAll']变量是否存在,不存在需要将timeAll变量初始化为0)。
    再次跳转重复这些操作即可。
    在timer函数中,每经过一秒,将临时计时变量加1,并判断是否达到时限,如果达到那么跳转到C页面就可以了。
      

  2.   

    求教2楼在A,B两个页面中,都定义了如下的js函数
    <script language="JavaScript" type="text/javascript">
    function gotopage()
    {
    window.location.replace("C.php")
    }function UserLogoIn() 
    {
       logoin=new Date();
       <?
       if(!isset($_GET["t"])){
       ?>
       var timeAll=0;
       <? } 
       else{
        $t=$_GET["t"]; 
       ?>
       timeAll=timeAll + <?=$t ?>;
       <? }?>
       setTimeout("gotopage()",60000-timeAll)
    }
    function h(){
       logoout=new Date();
       t_add=Math.round((logoout.getTime()-logoin.getTime()));
       window.location.replace("页面A或B.php?t=" + t_add) 
    }
    </script>
    下面的代码是<body onLoad="UserLogoIn()">
    AB页面切换点击时onclick="h()"这样试图实现在两个页面中的总时间为1分钟时,换到C.php
    但是一直报错,说timeAll没有定义,这是什么原因,不知道哪里需要修改呢?谢谢!
      

  3.   

    timeAll=timeAll + <?=$t ?>; 这一句应该是var timeAll=<?=$t?>;
    其次,你的timeAll变量没有在两个页面间进行传递。要进行timeAll就相当于一个口袋,要时刻带着
      

  4.   

    问题挺多,不好说,给你改一下好了。我没调试,你自己试下,如果不行,再讨论
    <script language="JavaScript" type="text/javascript">
    function gotopage()
    {
    window.location.replace("C.php")
    }
    var timeAll=<?=$_GET['timeAll']?intval($_GET['timeAll']):0?>;//定义成全局变量
    function UserLogoIn()
    {
      logoin=new Date();
      <?
      if(isset($_GET["t"])){
        $t=$_GET["t"];
      }else{
        $t=0;
      }
      ?>
      timeAll=timeAll+<?=$t ?>;
      <? }?>
      setTimeout("gotopage()",60000-timeAll)
    }
    function h(){
      logoout=new Date();
      t_add=Math.round((logoout.getTime()-logoin.getTime()));
      window.location.replace("页面A或B.php?timeAll="+timeAll"&t=" + t_add)
    }
    </script> 
      

  5.   

    噢噢,window.location.replace("页面A或B.php?timeAll="+timeAll+"&t=" + t_add);丢了+号,不好意思
      

  6.   

    谢谢~~试了一下还是有点问题,if else 那里多了一个},去除之后仍然在window.location.replace这里报错,缺少对象....
    实在不知道哪里出问题哦
      

  7.   

    window.location.href="A.php?timeAll="+timeAll+"&t=" + t_add;