2010-10-18 38 views
6

Tôi đang viết một tiện ích mở rộng của Safari và muốn nó hoạt động khác khi người dùng bật chế độ Duyệt web Riêng tư (Tôi muốn tôn trọng chế độ riêng tư này).Làm cách nào để tiện ích mở rộng Safari biết được chế độ Duyệt web riêng tư có bật không?

Tôi không tìm thấy đề cập đến điều này trong tài liệu của Apple.

Tôi biết các cuộc thảo luận trong chủ đề này:

Detecting if a browser is using Private Browsing mode

đó đề nghị sử dụng một (trình duyệt-agnostic) js-CSS trick để phát hiện tư nhân Đang truy cập chế độ, nhưng đã hy vọng có một số móc được xây dựng trong Safari mà tôi có thể sử dụng cho tiện ích mở rộng của mình.

Bất kỳ ý tưởng nào?

Trả lời

0

Tất cả chế độ riêng tư sẽ bỏ qua trạng thái hiện tại của cookiejar được trình duyệt sử dụng. Sử dụng một cái gì đó giống như một evercookie để theo dõi một trình duyệt cụ thể và cách nó quản lý các session id khác nhau của nó. Ví dụ: nếu bạn có cookie http hết hạn sau 60 năm và giá trị cookie này không có trong yêu cầu đối với máy chủ của bạn thì bạn biết giá trị cookie đã bị xóa hoặc đang ở chế độ riêng tư. Điều này sẽ đòi hỏi một chút thử nghiệm về phía bạn, nhưng hướng này sẽ là một phương pháp chung để phát hiện việc sử dụng chế độ riêng tư trong các trình duyệt.

1

Bạn có thể truy vấn boolean safari.application.privateBrowsing.enabled để kiểm tra xem duyệt web riêng tư có được bật hay không.

Bạn cũng có thể đính kèm trình xử lý sự kiện để kích hoạt mã tùy chỉnh khi duyệt web riêng tư được kích hoạt hoặc hủy kích hoạt.

safari.application.privateBrowsing.addEventListener('activate', function(e) { 
    console.log("Private browsing activated"); 
}); 

safari.application.privateBrowsing.addEventListener('deactivate', function(e) { 
    console.log("Private browsing deactivated"); 
}); 

Nguồn: Apple Docs

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