[英]How to detect search provider which has already been added?
我正在尝试构建一个功能,例如每当用户访问我的网站时,我都添加了一个选项,以在其浏览器中添加默认搜索提供程序。 我已经为Firefox编写了这样的代码-
<script>
$(document).ready(function () {
var isFirefox = typeof InstallTrigger !== 'undefined';
if (isFirefox === false) {
$("#set-susper-default").remove();
$(".input-group-btn").addClass("align-search-btn");
$("#navbar-search").addClass("align-navsearch-btn");
}
if (window.external && window.external.IsSearchProviderInstalled) {
var isInstalled = window.external.IsSearchProviderInstalled("http://susper.com");
if (!isInstalled) {
$("#set-susper-default").show();
}
}
$("#install-susper").on("click", function () {
window.external.AddSearchProvider("http://susper.com/susper.xml");
});
$("#cancel-installation").on("click", function () {
$("#set-susper-default").remove();
});
});
</script>
用户单击安装按钮,脚本将运行,并且该站点已添加到搜索提供程序列表中。 如果用户刷新或再次访问我的网站,则此功能再次出现。 我应该如何检测它已被添加,以便每当用户下次访问我的网站时它都不会出现。
如果有人可以帮助我,那将是很大的帮助。 谢谢 :)
不幸的是,您不能使用IsSearchProviderInstalled
和AddSearchProvider
。 它们在Chrome浏览器中被视为无操作对象,并且不应该执行HTML标准所描述的任何操作,更多信息请参见: https : //www.chromestatus.com/feature/5672001305837568 。 现在AddSearchProvider
工作在Firefox,但IsSearchProviderInstalled
始终返回0。您可以去尝试它https://google.com并添加以下代码: external.IsSearchProviderInstalled("https://www.google.com");
在控制台中。
相反,您应该尝试将搜索插件自动发现添加到您的网页中。 为此,只需将<link>
元素添加到<head>
:
<link rel="search"
type="application/opensearchdescription+xml"
title="searchTitle"
href="pluginURL">
此处的更多信息: https : //developer.mozilla.org/zh-CN/Add-ons/Creating_OpenSearch_plugins_for_Firefox#Autodiscovery_of_search_plugins
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.