0

私は今日、次のコードに取り組んでおり、ローカル マシンで非常にうまく動作します。しかし、iPhone/iPad でテストすると、まったく機能しません。

このコードは、ユーザーが Web サイトを離れたときに、ページの訪問時間をテキスト ファイルに保存することになっています。インターネットでダウンロードできる代替スクリプトがたくさんあることは知っていますが、これを自分で書きたいと思っています。どんな提案でも大歓迎です。

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); 
 ?>
4

1 に答える 1

3

iOS はサポートしていませんonbeforeunloadこの質問はこの問題に対処します。

于 2012-04-22T16:34:25.010 に答える