2011-12-02 8 views
5

ここでは、ページを閉じるのをやめるのは悪い習慣であり、そのようなものを処理するためのより良い方法があることを理解していますが、今後の参考のためにページの終了を遅らせる方法はありますか?何かのように遅延ページがJavascriptで閉じる?

window.onunload = unload(); 

function unload() 
{ 
setTimeout("self.close()", 1000) 
} 

ありがとう!

+0

試しましたか? –

+2

@ GlennSlaven、何を試しましたか?上記の関数はうまくいきません(もちろん:P)、ブラウザーで承認されている方法があるかどうかを尋ねていました。たとえば1秒間だけ遅くする機能 – MatthewSot

答えて

8

あなたは本当に(すなわち半ハックに頼るする準備ができています。)が必要な場合など、確認ダイアログを表示せずにページを閉じるのを遅らせるために、次のような何かを行うことができます。

function delay(ms) { 
    var start = +new Date; 
    while ((+new Date - start) < ms); 
} 

// start image loading (I assume you need this for tracking?) 
delay(150); 

注意点があります明白な:それはいつも働くとあなたはあまりにも遅く延期することはできません。あなたが本当にこれに興味があるなら、あなたはおそらく95%以上の結果を得ることができます(本当にサーバーの応答時間に依存します)。

+2

しかし、それもページをロックし、あなたのCPUをスパイクします。遅延させることはできますが、その期間中は何もできません。おそらくそれほど有用ではないでしょう。 –

+1

@Squeegyそれはそれほど悪くはありません:)あなたが実際に150-250の周りにタイムアウトを維持する場合、あなたは "ロック"に気づかないでしょう。ところで、これは私が今発明したものではなく、ビジタートラッカーのプロダクションで使用されています。 – deviousdodo