我正在开发一个Chrome扩展程序,我的要求是检测Chrome网络浏览器的默认搜索引擎。
我已经在网上搜索了很多,但没有得到任何 API 来检测。
我也在网上搜索过Javascript/Jquery,但到目前为止还没有运气。
请向我建议一些方法,以便我可以检测Chrome浏览器的默认搜索引擎。
我能想到的唯一方法是查询HTML5外部接口。
虽然这不会给你用户的默认搜索引擎,但你可以查询搜索引擎的URL,看看他是否正在使用一个你知道的URL。
installed = window.external.IsSearchProviderInstalled(url)
返回一个值,该值基于将 url 与已安装搜索引擎的结果页的 URL 进行比较。
0:安装的搜索引擎都与 url 不匹配。
1:一个或多个已安装的搜索引擎与 url 匹配,但没有一个是用户的默认搜索引擎。
2:用户的默认搜索引擎与网址匹配。
但请注意以下几点:
使用前缀匹配将 URL 与已安装搜索引擎的结果页面的 URL 进行比较。仅检查与调用此方法的脚本位于同一域上的结果页。
这意味着您只能检查浏览器是否在您正在查询的网站上。
因此,如果您冲浪到 https://www.google.com 并在控制台中运行以下内容:
external.IsSearchProviderInstalled("https://www.google.com")
将返回 2,如果您在控制台中对要查询的 URL 以外的另一个 URL 运行相同的 URL,您将收到错误。