网站如何知道他们不是默认的主页或搜索提供商?

时间:2015-12-10 07:05:07

标签: javascript browser search-engine webpage

据我所知,浏览器的默认主页/搜索提供商没有公开API曝光。那么谷歌如何知道这一点呢?只有当Google不是我浏览器上的默认主页/默认搜索提供商时才会出现。

Google on-page popup: 'Get to Google faster. Switch your default search engine to Google.' Googe on-page popup: 'Come here often? Make Google your homepage.'

我只能假设他们会从众多变量中推断,例如推荐者。我无法成功深入了解Google编译的JavaScript。我甚至不确定它是在客户端还是服务器端检测到的。

我在Firefox 44上,但我也在Chrome上看过这些横幅广告。

3 个答案:

答案 0 :(得分:70)

只需无法来使用JavaScript,因为"默认搜索/主页"是用户的首选项,如果没有用户的权限,您将无法访问该权限,因为这将是安全/隐私问题。

每次用户访问时,

Google所做的会显示一个促销广告,其中包含一个关闭图标和一个转到按钮,其中包含如何将其设置为默认主页的说明。 点击其中任何一个创建2个Cookie ,以便下次检查您的Cookie并使宣传消失。即使Google是您的主页并且您清除了Cookie,然后仍然会有一个横幅广告将Google作为您的主页宣传。

我已经使用Firefox检查了这一点,不了解Chrome。

答案 1 :(得分:19)

我不知道Google究竟做了什么,但我会做什么:

  • 使用一些特殊参数设置主页网址并进行检查 - “http://www.example.com/#!homepage(防止误报)
  • 检查Referer字段:
    • 如果不存在,则假设用户已手动输入
    • 如果每个用户访问非常相似(也许看起来像浏览会话的开始 - 通过GA在eeevery页面上推断出来),假设用户总是从某个地方点击来到这里
  • 设置一个Cookie,例如visitedHelpAboutHomePage当用户访问“是,向我显示”页面时(可能会阻止误报,但也可能会产生误报)

请注意,“特殊参数”确实发生在“搜索框启动的搜索”场景中:有一个参数sourceid,可能意味着“搜索源”。

答案 2 :(得分:11)

在我的Firefox(v42)中,“经常来这里?”即使我将Google设置为默认搜索提供商,也会显示框。

在Safari中,我在同一位置显示一个框,上面写着“更好的浏览网页方式:获取Google Chrome”

在Opera和Chrome中,即使我将默认搜索提供程序更改为Google以外的其他内容,我也完全没有框。

所以,我相信他们所做的就是使用UserAgent对象在JavaScript中进行浏览器检测。