php - javascript jquery 调用 php 无法在 iPhone/Ipad 上运行

标签 php javascript jquery ipad duration

我今天一直在编写以下代码,它在我的本地计算机上运行得很好。但当我在 iPhone/iPad 上测试它时,它根本不起作用。

该代码应该在用户离开网站时将页面访问的持续时间保存到文本文件中。我知道互联网上有很多可供下载的替代脚本,但我想自己编写这个。欢迎任何建议。

index.php:

<!DOCTYPE html>
<html>
<HEAD>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script type="text/javascript">

       function unloadPage(){

       var dd = new Date();
       var hh = (dd.getHours()<10?'0':'') + dd.getHours();
       var mm = (dd.getMinutes()<10?'0':'') + dd.getMinutes();
       var ss = (dd.getSeconds()<10?'0':'') + dd.getSeconds();
       var htmlString="<?php echo date('Gis') ?>";
       var timed = (hh + "" + mm + "" + ss) - htmlString;

       jQuery.ajax({
         url:    'time2.php?t=' + timed,
         success: function(result) {
                      if(result.isOk == false)
                          alert(result.message);
                  },
         async:   false
       });          
       }

       window.onbeforeunload = unloadPage;

    </script>
    <meta charset="utf-8">
    <title>thepaintjob.nl</title>
</head>
<BODY>
    <? 
            $myFile = "temp.txt";
            $fh = fopen($myFile, 'r');
            $theData = fread($fh, 5);
            fclose($fh);
            echo duration($theData);
    ?>
</body>
</html>

<?php 
    function duration($secs) 
    { 
        $vals = array('w' => (int) ($secs / 86400 / 7), 
                      'd' => $secs / 86400 % 7, 
                      'h' => $secs / 3600 % 24, 
                      'm' => $secs / 60 % 60, 
                      's' => $secs % 60); 

        $ret = array(); 

        $added = false; 
        foreach ($vals as $k => $v) { 
            if ($v > 0 || $added) { 
                $added = true; 
                $ret[] = $v . $k; 
            } 
        } 

        return join(' ', $ret); 
    } 
?>

time2.php:

<?php
$myFile = "temp.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, 5);
fclose($fh);
echo $total = $theData+$_GET['t'];



 $File = "temp.txt";
 $Handle = fopen($File, 'w');
 $Data = $total;
 fwrite($Handle, $Data); 
 fclose($Handle); 
 ?>

最佳答案

iOS 不支持 onbeforeunloadThis question解决了这个问题。

关于php - javascript jquery 调用 php 无法在 iPhone/Ipad 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10269781/

相关文章:

javascript - 从 PHP 中的地址形成发件人地址

php - if mysql查询中的参数

javascript - Bluebird Promise.all - 多个 Promise 完成聚合成功和拒绝

javascript - 将框背景颜色更改为从数据库中获取的相等十六进制

jquery - 表排序器排序;多个复选框、多列

javascript - 如何通过 javascript 按下 div 按钮?

javascript - Ajax文件上传仅获取filelist数组中的第一个文件进行上传

php - PHP 变量大小有限制吗?

javascript - 检测 iframe 中特定元素的加载时间

jQuery - 我可以将对象引用与其他选择器结合起来吗?