2011-12-02 85 views
5

現在,我明白推遲頁面關閉是一種不好的做法,並且有更好的方法來處理這種內容,但僅供將來參考,是否有延遲頁面關閉的方法?類似於延遲頁面關閉Javascript?

window.onunload = unload(); 

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

謝謝!

+0

你試過了嗎? –

+2

@GlennSlaven,試過什麼?上面的函數不起作用(當然:P),我問是否有瀏覽器批准的方法,就像一個函數會延遲它只有一秒鐘,不多不少,或者什麼東西 – 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