2012-05-26 43 views
5

Tôi đang cố gắng theo dõi trạng thái cửa sổ Firefox ("tối đa", "thu nhỏ", "bình thường", "toàn màn hình"; xem here). Tuy nhiên, bất cứ điều gì tôi đã cố gắng, tôi không bao giờ được nhìn thấy sự kiện thu nhỏ; những người khác làm tốt. Ví dụ: nếu tôi thêm người nghe vào cửa sổ nhưTiện ích mở rộng của Firefox: kiểm tra xem cửa sổ có bị thu nhỏ

window.addEventListener("activate", function(event) { dump("activate " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false); 
window.addEventListener("deactivate", function(event) { dump("deactivate " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false); 
window.addEventListener("resize", function(event) { dump("resize " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false); 

Tôi chưa bao giờ thấy 2 là window.windowState (2 = STATE_MINIMIZED). Tôi đã thử một workaround sử dụng screenX và screenY, nhưng điều đó không giúp đỡ. Khi tôi thu nhỏ cửa sổ hủy kích hoạt - không phải thay đổi kích thước - sự kiện xảy ra với window.windowState là 3 (STATE_NORMAL) và các giá trị screenX/screenY cũ.

Có cách nào để phát hiện khi cửa sổ Firefox đang được thu nhỏ không? Tôi đã tới giới hạn của mình rồi. Cảm ơn rất nhiều vì đã giúp đỡ!

+0

Tôi tìm thấy giải pháp thay thế bằng bộ hẹn giờ định kỳ kiểm tra trạng thái cửa sổ hiện tại và sau đó báo cáo mọi thay đổi. Nó hoạt động, nhưng tôi vẫn không hiểu vấn đề với giải pháp nghe. – Christian

Trả lời

5

Bạn nên nghe sự kiện sizemodechange. Đó là sự kiện kích hoạt sau khi cửa sổ được thu nhỏ hoặc phóng to. Sự kiện resize không kích hoạt tối thiểu hóa cửa sổ vì về mặt kỹ thuật cửa sổ không bị thay đổi kích thước - nó bị ẩn. Và sự kiện deactivate có thể cháy trước khi cửa sổ được thu nhỏ, khi nó vẫn có trạng thái bình thường (tôi đã không kiểm tra).

+0

Tuyệt vời! Tôi đã bỏ lỡ sự kiện đó hoàn toàn. Cảm ơn rất nhiều! – Christian

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