据我所知,浏览器的默认主页/搜索提供商没有公开API曝光.那么谷歌如何知道这一点呢?只有当Google不是我浏览器上的默认主页/默认搜索提供商时,它才会出现.
我只能假设他们是从众多变量推断出来的,例如推荐者.我无法成功地深入了解Google编译的JavaScript.我甚至不确定它是在客户端还是服务器端检测到的.
我在Firefox 44上,但我也在Chrome上看过这些横幅.
只要有没有办法做到这一点使用JavaScript,因为"默认搜索/主页"是一个用户的喜好和你没有访问,没有用户的许可 ,因为这将是一个安全/隐私问题.
Google在每次用户访问时都会显示促销广告,其中包含一个关闭图标和一个转到按钮,其中包含有关如何将其设置为默认主页的说明.点击其中任何一个,它会创建2个cookie,以便下次检查您的cookie并使促销消失.即使谷歌是您的主页并且您清除了您的cookie,然后仍然有一个横幅广告将Google作为您的主页.
我用Firefox检查过这个,不知道Chrome.
我完全不知道谷歌做了什么,但我会做什么:
使用一些特殊参数设置主页网址并进行检查 - ' http://www.example.com/#!homepage(防止误报)
检查Referer
字段:
如果它不存在,假设用户已手动输入
如果每个用户访问非常相似(也许看起来像浏览会话的开始 - 通过GA在eeevery页面上推断),假设用户总是从某个地方点击进入这里
设置一个cookie,例如 visitedHelpAboutHomePage
当用户访问"是,显示我"页面时(可能会阻止漏报,但也可能会产生误报)
请注意,"特殊参数"确实发生在"搜索框启动的搜索"场景中:有一个参数sourceid
可能意味着"搜索源".
在我的Firefox(v42)中,"经常来这里?" 即使我将Google设置为默认搜索提供商,也会显示框.
在Safari中,我在同一位置收到一个框,上面写着"更好的浏览网页方式:获取Google Chrome"
在Opera和Chrome中,即使我将默认搜索提供程序更改为Google以外的其他内容,我也完全没有框.
所以,我相信他们所做的只是使用UserAgent对象在JavaScript中进行浏览器检测.