2011-12-02 31 views
5

Bây giờ, tôi hiểu rằng thực tiễn không tốt là trì hoãn một trang và có cách tốt hơn để xử lý loại nội dung đó, nhưng chỉ để tham khảo trong tương lai, có cách nào trì hoãn việc đóng trang không? Một cái gì đó nhưTrang trì hoãn đóng bằng Javascript?

window.onunload = unload(); 

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

Cảm ơn!

+0

Bạn đã thử chưa? –

+2

@GlennSlaven, đã thử cái gì? Hàm trên không hoạt động (tất nhiên: P), và tôi đã hỏi liệu có thể có một cách làm trình duyệt được chấp thuận, giống như một hàm sẽ trì hoãn nó chỉ trong một giây, không ít hơn, hay cái gì đó – MatthewSot

Trả lời

8

Nếu bạn thực sự cần (tức là đã sẵn sàng để nghỉ mát để bán hacks.) Để trì hoãn việc đóng cửa trang mà không hiển thị một hộp thoại xác nhận, vv, bạn có thể làm một cái gì đó như sau:

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

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

Các hãy cẩn thận là hiển nhiên: nó sẽ không luôn luôn hoạt động và bạn không thể trì hoãn quá lâu. Điều đó đang được nói, nếu bạn thực sự quan tâm đến điều này, bạn có thể có thể nhận được kết quả trên 95% (thực sự phụ thuộc vào thời gian phản hồi của máy chủ).

+2

Nhưng điều đó cũng sẽ khóa trang và tăng đột biến CPU của bạn. Nó có thể trì hoãn nó, nhưng bạn không thể làm gì cả trong thời gian đó. Làm cho hack này có lẽ không hữu ích lắm. –

+1

@Squeegy Nó không phải là gần như là xấu như nó âm thanh :) Bạn sẽ thực sự không nhận thấy "khóa" nếu bạn giữ thời gian chờ khoảng 150-250. Và bằng cách này, đây không phải là một cái gì đó tôi đã phát minh ra bây giờ, nó đang được sử dụng trong sản xuất bởi người theo dõi khách truy cập. – deviousdodo

Các vấn đề liên quan