javascript – 您可以通过脚本确定Chrome是否处于隐身模式?

是否可以通过脚本确定Google Chrome是否处于无痕模式?

编辑:我的意思是可能通过用户脚本,但答案假设JavaScript在网页上运行。我再次问问题here与用户脚本。

最佳答案
一种方法是访问唯一的URL,然后检查该URL的链接是否被视为由CSS访问。

你可以在“Detecting Incognito”中看到这样的例子。

在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”。它
将从网络服务器服务。

转载注明原文:javascript – 您可以通过脚本确定Chrome是否处于隐身模式? - 代码日志