【问题标题】:How to detect Chrome default Search engine如何检测 Chrome 默认搜索引擎
【发布时间】:2015-02-17 04:36:54
【问题描述】:

我正在开发一个 chrome 扩展,我的要求是检测 Chrome 网络浏览器的默认搜索引擎。

我在网上搜索了很多,但没有得到任何 api 来检测。

我也用 Javascript/Jquery 搜索了网页,但到目前为止还没有运气。

请给我一些建议,以便我可以检测 Chrome 浏览器的默认搜索引擎。

【问题讨论】:

    标签: javascript jquery google-chrome google-chrome-extension google-chrome-devtools


    【解决方案1】:

    我能想到的唯一方法是query the HTML5 external interface

    虽然这不会给你用户默认的搜索引擎,但你可以查询搜索引擎的 URL,看看他是否使用你知道的 URL。

    installed = window.external.IsSearchProviderInstalled(url)
    

    根据 url 与已安装搜索引擎的结果页面的 URL 的比较返回一个值。

    0:没有安装的搜索引擎匹配 url。

    1:一个或多个已安装的搜索引擎匹配 url,但没有一个是用户的默认搜索引擎。

    2:用户的默认搜索引擎匹配url。

    但请注意以下几点:

    使用前缀匹配将 url 与已安装搜索引擎的结果页面的 URL 进行比较。仅检查与调用此方法的脚本位于同一域的结果页面。

    这意味着您只能检查浏览器是否在您正在查询的网站上。

    因此,如果您浏览 https://www.google.com 并在控制台中运行以下命令:

    external.IsSearchProviderInstalled("https://www.google.com")
    

    将返回 2,如果您在控制台中在另一个 URL 上运行相同的 URL,而不是您正在查询的 URL,则会收到错误。

    【讨论】:

    • 非常有趣,但对于所述目的几乎没用。
    • 不是没用的,因为扩展程序可以在每个站点上运行它。
    • 注意,现在已经过时了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2012-12-14
    • 2019-12-30
    • 2012-10-26
    • 2010-10-15
    相关资源
    最近更新 更多