9

ユーザーがブラウザーまたはページを離れる (閉じる) ときに関数を実行しようとしていますが、Chrome を除くすべてのブラウザーで機能しています。

ページから移動するとChromeは機能を正常に実行しますが、タブを閉じるかブラウザを完全に閉じると機能を実行しません。

最後に実行している関数は、画像を作成し、いくつかのデータをサーバーに送信します (分析レポートと同様)。例: img.src="url?data=yyy". この画像はjsで動的に作成されます。

誰かが問題の原因を明らかにすることはできますか? いくつかの理由に絞り込みました。

1)タブが閉じたときに正しいイベントを使用していません(つまり、アンロード前ではありません)

2) Chrome は実際に関数を実行しますが、ブラウザ/ページが閉じるため、画像は送信されません。

どんな助けでも大歓迎です。ありがとう。

サンプルコードは次のとおりです。

if(window.addEventListener){
   window.addEventListener("beforeunload", page_unload, false);         
}
function page_unload(){
    var img     = new Image();
    var img_src = "http://www.myurl.com?data=yyy"
    img.src = img_src;
}
4

1 に答える 1

0

Chrome に関連する問題があり、jQuery を使用して解決しました。

$(window).unload( function() {
   //Call your function
   page_unload();
});

何らかの理由で、JavaScript beforeunload が適切に機能しない場合に、Chrome で jQuery のアンロード イベントがより適切に機能します。

于 2014-01-25T07:01:26.533 に答える