Trên iOS 11 Safari mới và MacOS High Sierra Safari, mẹo đó sẽ thấy nếu window.localStorage.setItem('test', 1);
(xem https://stackoverflow.com/a/17741714/1330341) ném lỗi không còn hoạt động nữa, vì nó không còn phát ra lỗi nữa và nó cũng đặt đúng mục localStorage. Có ai đã tìm ra cách nào khác để kiểm tra chế độ duyệt web riêng tư trong các phiên bản Safari mới không?Cách phát hiện duyệt web riêng tư trong iOS 11 Mobile Safari hoặc MacOS High Sierra Safari?
Trả lời
đã không thực sự cố gắng đó, nhưng từ việc đọc tài liệu của Apple:
https://support.apple.com/kb/ph21413?locale=en_US
Nó liệt kê các đặc điểm khác nhau của trình duyệt chế độ tư nhân (~ snip):
Khi bạn sử dụng một Private Browsing cửa sổ:
Mỗi tab trong cửa sổ được tách biệt với những trang khác, do đó các trang web mà bạn xem trong một tab không thể theo dõi việc duyệt web của bạn trong các tab khác.
Safari không nhớ các trang web bạn truy cập hoặc thông tin Tự động điền của bạn.
Safari không lưu trữ các trang web đang mở của bạn trong iCloud, vì vậy chúng không phải là được hiển thị khi bạn xem tất cả các tab đang mở của mình từ các thiết bị khác.
Các tìm kiếm gần đây của bạn không được bao gồm trong danh sách kết quả khi bạn sử dụng trường Tìm kiếm thông minh.
Các mục bạn tải xuống không được bao gồm trong danh sách tải xuống. (Các mục vẫn còn trên máy tính của bạn.)
Nếu bạn sử dụng Handoff, cửa sổ duyệt web riêng tư sẽ không được chuyển đến thiết bị iOS hoặc máy tính Mac khác.
Safari không nhớ các thay đổi đối với cookie của bạn hoặc trang web khác dữ liệu. Safari cũng yêu cầu các trang web và những người khác cung cấp các trang web đó với nội dung (bao gồm cả nhà quảng cáo) không theo dõi việc duyệt web của bạn, mặc dù tùy thuộc vào các trang web để tôn trọng yêu cầu này.
Plugin hỗ trợ Duyệt web riêng tư ngừng lưu trữ cookie và các thông tin theo dõi khác.
Từ trên, đặc biệt tôi thấy thú vị rằng Safari yêu cầu các trang web "không theo dõi" duyệt web. Đây có thể là cơ chế để tìm kiếm, để xác định xem có sử dụng tính năng duyệt web riêng tư hay không.
Xem câu trả lời này cho một ví dụ:
Implementing Do not track in asp.net mvc
Một lần nữa, đã không kiểm tra và chắc chắn nếu nó sẽ làm việc, nhưng nếu không phải là danh sách cung cấp tùy chọn tiềm năng khác. HTH.
Trích dẫn từ trang web của apple.https://support.apple.com/kb/ph21413?locale=en_US
trang web không thể sửa đổi thông tin được lưu trữ trên thiết bị của bạn, vì vậy dịch vụ thường có sẵn tại các địa điểm như vậy có thể làm việc khác nhau cho đến khi bạn bật tắt Private Browsing
Vì vậy, lưu trữ một biến kiểm tra, thay đổi giá trị của nó, sau đó đọc biến kiểm tra. Nếu bạn nhận được một ngoại lệ, không thể tìm thấy biến, giá trị không thay đổi hoặc bạn nhận được giá trị null/undefined, chúng có nhiều khả năng ở chế độ riêng tư.
Hoặc, trong duyệt web riêng tư, bạn không có lịch sử tìm kiếm được lưu trữ có thể truy cập. Vì vậy, chuyển hướng đến một trang mới trong trang web của bạn khi khởi động và sau đó kiểm tra xem bạn có bất kỳ lịch sử trước nào không. Nếu không và thực tế là bạn đang nhận được một Do Not Track nhiều khả năng có nghĩa là bạn đang ở chế độ riêng tư trên safari.
Xin lưu ý rằng tôi chưa thử nghiệm điều này. Điều này dựa trên thông tin do Apple cung cấp trong liên kết ở trên.
tôi tìm một giải pháp ở đây:
https://gist.github.com/cou929/7973956#gistcomment-2272103
var isPrivate = false;
try {
window.openDatabase(null, null, null, null);
} catch (_) {
isPrivate = true;
}
alert((isPrivate ? 'You\'re' : 'You aren\'t') + ' in private browsing mode');
Hy vọng nó sẽ giúp :)
Thing mà tôi nhận ra là Safari ném một "vượt quá giới hạn" lỗi trong chế độ tư nhân. Vì vậy, đây là những gì tôi đã làm!
isPrivateMode: function() {
if (localStorage.length === 0) {
try {
localStorage.setItem('isLocalStorageAvaialble', 'That is being tested!');
localStorage.removeItem('isLocalStorageAvaialble');
return false;
} catch (e) {
return true;
}
}
}
Kiểm tra chiều dài của localStorage là quan trọng đối với sự thật rằng, nếu bạn đang cố gắng phương pháp này trên một trình duyệt hỗ trợ localStorage, nhưng là đầy đủ, bạn vẫn sẽ nhận được "vượt quá giới hạn" lỗi. Ở chế độ riêng tư, độ dài của localStorage luôn là 0.
Hy vọng điều này sẽ hữu ích!
- 1. Trang web không hoạt động trong chế độ duyệt web riêng tư safari
- 2. Giới hạn iOS 5.1 và Safari Mobile
- 3. Phát hiện chuyển sang tab mới trong Mobile Safari
- 4. Phát hiện tab trình duyệt đóng qua JavaScript trong Mobile Safari?
- 5. Mobile Safari IOS 6 Chụp ảnh
- 6. Mobile Safari: Audio + cache manifest
- 7. jQuery Detect Đáy trang trên Mobile Safari/iOS
- 8. Web Storage (sessionStorage và localStorage) trong chế độ duyệt web riêng tư (ẩn danh)
- 9. OnSubmit with Mobile Safari
- 10. 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?
- 11. Nút quay lại Mobile Safari
- 12. Làm thế nào để phát hiện phía máy chủ Mobile Safari bằng cách sử dụng PHP?
- 13. iOS Safari phát hiện khi người dùng nhấp vào "Xong" trong trình phát bản địa
- 14. Trang web không tải đúng cách trong trình duyệt Safari
- 15. Mobile Safari lọc màu xám thêm mờ
- 16. CSS Flipper - Số phát hành iOS/Safari
- 17. PHP không hoạt động sau khi cập nhật MacOS lên High Sierra
- 18. Cách phát hiện thả xuống UIWebview trong iOS 11?
- 19. Mobile Safari trên iOS treo trên các trang lớn
- 20. Mobile Safari trên iPhone/iPod CSS hack
- 21. Phát hiện trình phát hiện tệp PDF trong Safari
- 22. Tải lên tệp trong Mobile Safari
- 23. CSS: Cách ngăn cuộn trên iOS Safari?
- 24. Phát hiện swipe hai ngón tay của Safari
- 25. OpenMP có sẵn trong High Sierra LLVM không?
- 26. Tôi làm cách nào để kiểm tra công việc trang web của mình trong Safari mobile?
- 27. Làm cách nào để phát hiện trình duyệt Safari trên thiết bị di động trong ios 7?
- 28. iOS Safari Private Browsing localStorage and sessionStorage Hỗ trợ?
- 29. cách kiểm tra phần tử trong trình duyệt Safari
- 30. Duyệt web riêng tư trên Android Webview