V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dadazhang
V2EX  ›  问与答

js 怎么判断浏览器无痕模式

  •  
  •   dadazhang · 2019-07-03 13:13:28 +08:00 · 5978 次点击
    这是一个创建于 1974 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请问在 js 中怎么判断手机浏览器是否开启了无痕模式、隐私模式

    21 条回复    2019-07-04 17:02:38 +08:00
    whypool
        1
    whypool  
       2019-07-03 13:49:53 +08:00   ❤️ 5
    window.confirm('就是问一下是不是隐私模式?')
    Jirajine
        2
    Jirajine  
       2019-07-03 13:51:09 +08:00 via Android   ❤️ 14
    有这个需求的我感觉都没好事。
    robinlovemaggie
        3
    robinlovemaggie  
       2019-07-03 14:02:09 +08:00
    自己写一个浏览器给用户用, 他干什么都可以知道。
    wolfie
        4
    wolfie  
       2019-07-03 14:06:02 +08:00
    看到 PC 端判断代码,好奇应用场景。
    7654
        5
    7654  
       2019-07-03 14:07:09 +08:00
    浏览器出个隐私模式容易吗
    azh7138m
        7
    azh7138m  
       2019-07-03 14:12:47 +08:00   ❤️ 1
    Mozilla 在 2017 年的收入为 5.62 亿美元,我们都算做 Firefox 的,Firefox 的市场占有率在 8%左右,那么整个市场规模大概 70 刀,按估值是 20 倍营收来算,考虑到 “资本家为了 300%的利润率可以冒上断头台的危险”,只要 70 * 20 * 3 亿刀,买这些浏览器都买下,就可以让全世界的浏览器给自己提供私有 api 啦。
    dadazhang
        9
    dadazhang  
    OP
       2019-07-03 16:30:18 +08:00
    @RoshanWu
    @Tonni
    感谢回复
    mumbler
        10
    mumbler  
       2019-07-03 16:34:27 +08:00
    @azh7138m 那以后谁做个浏览器,就可以敲诈大佬钱了
    azh7138m
        11
    azh7138m  
       2019-07-03 16:41:27 +08:00
    @mumbler 按照市场占有率算得,自己做浏览器没有占有率的


    没看懂楼主在感谢什么,那些检测写的又不对。
    cjc2017
        12
    cjc2017  
       2019-07-03 16:51:02 +08:00
    无痕情况下 windwo.localStorage 还是 sessionStorage 会抛出错误 可以尝试以此为判断条件
    cjc2017
        13
    cjc2017  
       2019-07-03 17:00:49 +08:00
    原来上面已经有大佬 po 出代码 打扰了
    mugglezzz
        14
    mugglezzz  
       2019-07-03 19:17:51 +08:00   ❤️ 1
    @azh7138m #11 我看懂了,大概楼主在感谢他认为对他有用的回复,或者说认真对他的问题回复的人;而其他说话阴阳怪气文不对题的人就不用感谢啦
    azh7138m
        15
    azh7138m  
       2019-07-03 19:58:03 +08:00
    @mugglezzz

    上面贴出的代码,仅在部分版本的浏览器会报错,实际上并没有用(指 并不能用作 生产)。他们(指 https://www.v2ex.com/t/579610#r_7570232 https://www.v2ex.com/t/579610#r_7570379 )贴出的代码,我看过了,也测试过了。
    同样,我认为最靠谱的方式就是收购浏览器。
    这个说法是有来源的,chrome 哪怕在隐身模式下也会发送设备 id 给 Google,这个设备 id 在访问 Google 的网站时会携带。
    phpcyy
        16
    phpcyy  
       2019-07-03 20:38:06 +08:00
    @cjc2017 我在 chrome 下试过了,localStorage 和 sessionStorage 可以用啊
    qianlifeng
        17
    qianlifeng  
       2019-07-03 23:03:16 +08:00
    mywaiting
        19
    mywaiting  
       2019-07-04 01:22:07 +08:00
    楼上说收购浏览器的,真会抖机灵

    以 chrome 为例,如果你有仔细 debug 过常规模式和无痕模式的区别,我想你一定能想出很多方法来区分是否运行在无痕模式下

    碍于利益相关,不想明白说,楼主可以自己仔细对比 常规模式的浏览器和无痕模式的浏览器到底有哪些区别,可以列出一个很长很长的列表的,把这个列表每一项想想有什么 hack 的方法,就能找到一堆区分两者的实现了,即使是近似的方式,那对于无痕模式也有极高(超过九成)的识别率,特定浏览器和方法能百分百确定
    s4nd
        20
    s4nd  
       2019-07-04 07:50:29 +08:00 via Android
    我看到过一个这种代码,待会找找
    cjc2017
        21
    cjc2017  
       2019-07-04 17:02:38 +08:00
    @phpcyy 我当时的场景是用户开启了无痕模式导致存储信息操作失败并且报错 挺久以前的事情 估计浏览器更新迭代把这个报错取消了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:28 · PVG 04:28 · LAX 12:28 · JFK 15:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.