2012-04-22 19 views
0

私は今日次のコードに取り組んでいます。私のローカルマシンではうまく動作します。しかし、iPhone/iPadでテストすると、まったく動作しません。javascript jqueryは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); 
?> 
+0

'var timed =(hh +" "+ mm +" "+ ss)-htmlString;'エラーを発生させませんか?あなたは文字列を引くことはできません。 –

+0

スクリプトはどこで失敗するのですか?あなたはayのエラーを取得しますか? –

+0

まあ、私はサファリやクロムに何のエラーも出なかった。それは働くようです、私はすでに私のウェブサイトで "時計"の時間の15分以上を持っています:) – needle

答えて

3

iOSがonbeforeunloadをサポートしていません。 This questionはこの問題を解決します。

+0

O_o大丈夫、申し訳ありません私はそれを逃した。 – needle

関連する問題