0

次のコードを実行しようとしています

window.onunload = function () { 
     var sTag = document.createElement('script'); 
     sTag.src = 'mysrc'; 
     document.getElementsByTagName('head')[0].appendChild(sTag); 
     return false; };
}

FFでは正常に動作しているようですが、Chromeでは、アンロードイベントが発生するとすぐにダウンロードステータスがキャンセルされます。SOでajaxソリューションを使用した投稿をいくつか見ましたが、このスクリプトをクロスドメインiframe内で実行しています。私は、訪問者ごとのページに私のAPIがライブであった時間を記録しようとしています。そこで、ページのアンロードに関するタイムログ情報を送信します。上記の回避策はありますか?

4

1 に答える 1

0

あなたが説明した目的のために、そのスクリプトをページまたは親ウィンドウにロードし(iframeだと言っていますよね?)、window.unloadで関数を実行できます。

window.onunload = function(){
   window.top.logtime(); // if it is in the parent, or 
   window.logtime() //if it is in the same window
};

false を返さないでください。アンロード イベントはキャンセルできません。(最良の場合、ユーザーは return false ステートメントをオーバーライドする警告ダイアログを受け取ります。)

これが違うのは、身体が荷を下ろされる前に、新しい機能をどれだけ速く実行できるかだと思います. DOM の操作は、呼び出しを行うよりもはるかに遅くなります。

于 2012-11-26T07:49:15.810 に答える