【问题标题】: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,则会收到错误。