0

やあみんな、誰かが私を助けてくれることを願っています。

私はクリックを記録するための小さなアプリケーションを作成しています。これは、iPhone/iTouchに到達するまでうまくいきます。私はiTouchでテストしてきましたが、iPhoneでも同じことが起こると推測していることを指摘したいと思います。

私が今持っているのはこれに似たものです、

    <script>
    function save(){
        // Capture link, with var mycoords containing string
        var a = 'http://mydomain.com/capture.php?co='+mycoords;
        var img = new Image(1,1);

        // Loads link with params, PHP uses $_GET
        img.src = a;
        alert('f'); // For testing
     }

    // alerts 'f', does not send data on device
    window.onunload = save;

    // alerts 'f', does not send data on device
    window.onunload = (function(){
       save();
    });

    // Alerts 'f', does not send data on device
    window.addEventListener("unload",save,false);
    </script>

このコードは、Safariを含むすべてのデスクトップブラウザで機能しますが、iTouch/iPhoneでは機能しません。onunloadプラクティスの外でsave()関数を実行すると、データは問題なく送信されます。アラートにより、onunloadが機能することを知っています。しかし、私はこのインスタンスでは機能していないが、他の場所では機能している画像オブジェクトに完全に困惑しています。私はネット上でよく調べましたが、解決策は見つかりませんでした。

おそらくここの誰かが私にこれが起こっている理由の解決策や説明を与えることができますか?私は非常に感謝されます。お時間をいただきありがとうございます。

4

1 に答える 1

0

ここで回答されているように、基本的に onunload を確実に検出する方法はありません: javascript unload event in safari mobile?

クリックを追跡しようとしている場合は、最初に save() 関数を呼び出すクリック イベント ハンドラーをリンクに追加することをお勧めします。次に true を返すか、document.location.href を更新して、ユーザーを最終ページに移動します。リンク。

于 2011-06-08T19:11:33.493 に答える