W nowym Safari i iOS 11 High Sierra Safari, ta sztuczka sprawdzenia, czy window.localStorage.setItem('test', 1);
(patrz https://stackoverflow.com/a/17741714/1330341) zgłasza błąd, nie działa, ponieważ nie powoduje już błędu, a także poprawnie ustawia pozycję localStorage. Czy ktokolwiek wymyślił jakikolwiek inny sposób sprawdzenia trybu przeglądania prywatnego w nowych wersjach Safari?Jak wykrywać prywatne przeglądanie w iOS 11 Mobile Safari lub MacOS High Sierra Safari?
Odpowiedz
nie faktycznie próbowałem, ale z lektury dokumentu Apple:
https://support.apple.com/kb/ph21413?locale=en_US
Wymienia różne cechy przeglądania w trybie prywatnym (~ ciach):
Podczas korzystania z Przeglądanie prywatne window:
Każda zakładka w oknie jest izolowana od inne, więc strony internetowe, które widzisz na jednej karcie, nie mogą śledzić twojego przeglądania w innych zakładkach.
Safari nie zapamiętuje odwiedzanych stron internetowych ani informacji o autouzupełnianiu .
Safari nie przechowuje otwartych stron w usłudze iCloud, więc nie są wyświetlane wyświetlane podczas przeglądania wszystkich otwartych kart z innych urządzeń.
Ostatnie wyszukiwania nie są uwzględniane na liście wyników, gdy korzystasz z pola wyszukiwania inteligentnego w polu .
Elementy, które pobieracie, nie są uwzględnione na liście plików do pobrania. (Pozycje pozostają na komputerze.)
Jeśli używasz Handoff, okna Przeglądanie prywatne nie są przekazywane do urządzeń iOS lub innych komputerów Mac.
Safari nie pamięta zmian w plikach cookie ani na innej stronie internetowej danych. Safari prosi również witryny internetowe i inne osoby, które udostępniają te witryny z zawartością (w tym reklamodawcami), aby nie śledziły Twojego przeglądania, ale to zależy od stron internetowych, aby spełnić to żądanie.
Wtyczki obsługujące prywatne przeglądanie przestają przechowywać pliki cookie i inne informacje o śledzeniu w postaci .
Z powyższego, w szczególności znalazłem interesujące, że Safari w szczególności prosi strony internetowe o "nieślubne" przeglądanie. Może to potencjalnie być mechanizmem do wyszukania, aby określić, czy korzystasz z prywatnego przeglądania.
Zobacz tę odpowiedź dla przykładu:
Implementing Do not track in asp.net mvc
Ponownie, nie testowałem i nie wiem, czy to będzie działać, ale jeśli nie lista zawiera inne potencjalne możliwości. HTH.
Cytat ze strony internetowej jabłka.https://support.apple.com/kb/ph21413?locale=en_US
Strony nie mogą modyfikować informacje przechowywane w urządzeniu, więc usług normalnie dostępne w takich miejscach może działać w różny sposób, dopóki nie obróci off Przeglądanie prywatne
Więc przechowywać zmienną testową, zmiana jego wartość, a następnie odczytaj zmienną testową. Jeśli otrzymasz wyjątek, nie możesz znaleźć zmiennej, wartość się nie zmieniła lub odzyskasz wartość null/undefined, najprawdopodobniej są one w trybie prywatnym.
Alternatywnie, podczas przeglądania prywatnego nie masz dostępnej historii zapisanych wyszukiwań. Tak, przekieruj do nowej strony w swojej witrynie przy starcie, a następnie sprawdź, czy masz jakąkolwiek wcześniejszą historię. Jeśli nie, a fakt, że dostaniesz Do Not Track najprawdopodobniej oznacza twój prywatny tryb na safari.
Należy pamiętać, że tego nie przetestowałem. Jest to oparte na informacjach dostarczonych przez Apple w powyższym linku.
znajdę rozwiązanie tutaj:
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');
Nadzieja to pomaga :)
rzeczą, że zdałem sobie sprawę, jest Safari rzuca "Przekroczono limit" błąd w trybie prywatnym. Oto co zrobiłem!
isPrivateMode: function() {
if (localStorage.length === 0) {
try {
localStorage.setItem('isLocalStorageAvaialble', 'That is being tested!');
localStorage.removeItem('isLocalStorageAvaialble');
return false;
} catch (e) {
return true;
}
}
}
Sprawdzanie długości localStorage jest ważne dla tego, że jeśli próbuje tej metody na przeglądarkę, która obsługuje localStorage, ale jest pełna, jeszcze dostanie „Przekroczono limit” błąd. W trybie prywatnym długość localStorage wynosi zawsze 0.
Mam nadzieję, że to pomoże!
- 1. Ograniczenia dla iOS 5.1 i Safari Mobile
- 2. Mobile Safari IOS 6 Zrób zdjęcie
- 3. iframe kwestie wysokości na iOS (Mobile Safari)
- 4. MacOS (10.13 High Sierra) nie przechowuje screensaver ustawienia com.apple.screensaver
- 5. Różnice w JavaScript między Mobile Safari a Safari na Macu?
- 6. Edytor tekstu sformatowanego w przeglądarce Mobile Safari
- 7. Czy można uzyskać identyfikator iOS 6 advertisingIdentifier w Mobile Safari?
- 8. Dlaczego window.location niezdefiniowany na wszystkich właściwości w Safari 6 i Mobile Safari (iOS 6)
- 9. jQuery Detect dołu strony na Mobile Safari/iOS
- 10. jqModal niepoprawne wyświetlanie w Mobile Safari
- 11. Mobile Safari filtr skali szarości dodaje rozmycie
- 12. Przekierowanie wejścia iOS Safari 8
- 13. iOS 7 Uzyskaj dostęp do aparatu iPhone z Mobile Safari?
- 14. Jak wyłączyć pamięć podręczną w safari IOS?
- 15. CSS Flipper - iOS/Safari Issue
- 16. Prywatne przeglądanie w przeglądarce Android
- 17. Zabezpieczenie wejścia iOS Safari caret
- 18. Wtyczki wsparcia dla IOS Safari?
- 19. CSS: Jak zapobiec przewijaniu w Safari na iOS?
- 20. Jak zapobiegać opóźnieniu przewijania w Safari Mobile (iPad)?
- 21. Jak uzyskać dostęp do kamery iPhone'a z Mobile Safari
- 22. Pobierz bieżące położenie widoku w Mobile (iPhone) Safari
- 23. Wyłącz tę samą zasadę pochodzenia w przeglądarce Safari Safari
- 24. Wykrywanie zakładki przeglądarki zamykającej za pomocą JavaScript w Mobile Safari?
- 25. Otwórz kontroler widoku Safari z widoku tabeli na iOS 9 i otwórz w Safari na iOS 8 lub 7
- 26. nie kompiluje SCSS po aktualizacji OSX do 10,13 (MacOS High Sierra)
- 27. UIScrollWyświetl stronicowanie poziome, tak jak karty Mobile Safari.
- 28. Wyłącz szare pole, gdy nie ma go w Mobile Safari.
- 29. Problemy wyświetlania PDF w iFrame na Mobile Safari
- 30. W jaki sposób jquery mobile ukrywa pasek adresu mobilnego safari?