如何检测Chrome默认搜索引擎

7

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

我在网上搜索了很多,但没有找到任何可以检测的API。

我还尝试了用JavaScript / JQuery搜索,但迄今为止没有成功。

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

1个回答

1

我所能想到的唯一方法是查询HTML5外部接口

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

installed = window.external.IsSearchProviderInstalled(url)

根据与已安装搜索引擎的结果页面的URL比较返回一个值。
0:没有已安装的搜索引擎与URL匹配。 1:一个或多个已安装的搜索引擎与URL匹配,但没有是用户默认的搜索引擎。 2:用户默认的搜索引擎与URL匹配。
但需要注意以下内容:
将URL与已安装搜索引擎的结果页面的URL进行前缀匹配。仅检查与调用此方法的脚本相同域的结果页面。
这意味着您只能检查浏览器是否在您正在查询的站点上。
因此,如果您浏览到https://www.google.com并在控制台中运行以下命令:
external.IsSearchProviderInstalled("https://www.google.com")

如果您在控制台中运行不同于正在查询的网址的相同内容,则会返回2,否则将出现错误。

非常有趣,但对于所述目的几乎没有用处。 - Xan
不是无用的,因为扩展程序可以在每个网站上运行它。 - Daniel Herr
注意,现在已经过时了。 - KTibow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接