Один из способов - посетить уникальный URL-адрес, а затем проверить, обрабатывается ли ссылка на этот URL-адрес как посещенная CSS.
Пример этого можно увидеть в «Обнаружении инкогнито» (Мертвая ссылка) .
Исследовательская статья того же автора для замены ссылки Обнаружение инкогнито выше
В main.html
добавить iframe,
<iframe id='testFrame' name='testFrame' onload='setUniqueSource(this)' src='' style="width:0; height:0; visibility:hidden;"></iframe>
и некоторый код JavaScript:
function checkResult() {
var a = frames[0].document.getElementById('test');
if (!a) return;
var color;
if (a.currentStyle) {
color = a.currentStyle.color;
} else {
color = frames[0].getComputedStyle(a, '').color;
}
var visited = (color == 'rgb(51, 102, 160)' || color == '#3366a0');
alert('mode is ' + (visited ? 'NOT Private' : 'Private'));
}
function setUniqueSource(frame) {
frame.src = "test.html?" + Math.random();
frame.onload = '';
}
Затем в test.html
, которые загружаются в iFrame:
<style>
a:link { color: #336699; }
a:visited { color: #3366A0; }
</style>
<script>
setTimeout(function() {
var a = document.createElement('a');
a.href = location;
a.id = 'test';
document.body.appendChild(a);
parent.checkResult();
}, 100);
</script>
ПРИМЕЧАНИЕ: попытка сделать это из файловой системы может заставить Chrome плакать о «небезопасном JavaScript». Это
будет работать с веб-сервером.