如何检测已添加的搜索提供程序?

时间:2017-05-29 12:01:01

标签: javascript

我正在尝试构建一个功能,例如每当用户访问我的网站时,我都添加了一个选项,可以在浏览器中添加默认搜索提供程序。我已经为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>

用户点击安装按钮并运行脚本,并将该网站添加到搜索提供商列表中。如果用户刷新或再次访问我的网站,此功能将再次出现。我应该如何检测它已被添加,以便每当用户下次没有出现时访问我的网站。

如果有人可以帮助我,那将会很有帮助。谢谢:))

1 个答案:

答案 0 :(得分:0)

很遗憾,您无法使用# server.R library(dygraphs) shinyServer(function(input, output) { spectrum <- reactive({ keepscale <<-FALSE inFile <- input$inputfile read.table(inFile$datapath) }) cut <- reactive({ if (is.null(input$dygraph_click$x)) return(NULL) cut <- input$dygraph_click$x }) output$dygraph <- renderDygraph({ if (is.null(input$inputfile)){ keepscale <<-FALSE return(NULL) } else{ simpleplot<-dygraph(spectrum(), main = input$inputfile$name) %>% dyOptions(drawXAxis = TRUE, drawYAxis = FALSE, drawGrid = FALSE,animatedZooms = FALSE) %>% dyRoller(rollPeriod = input$rollmean, showRoller = FALSE) %>% dyEvent(cut()) %>% dyRangeSelector(retainDateWindow=keepscale, fillColor = "")} keepscale <<-TRUE return(simpleplot) }) output$text1 <- renderText({ paste("You have selected", input$dygraph_click$x) }) }) IsSearchProviderInstalled。它们在Chrome中被视为无操作,并且不应像HTML标准所描述的那样执行任何操作,更多信息请参见:https://www.chromestatus.com/feature/5672001305837568。目前AddSearchProvider适用于Firefox,但AddSearchProvider将始终返回0.您可以转到https://google.com并在控制台中添加此代码IsSearchProviderInstalled来尝试。

相反,您应该尝试将搜索插件自动发现添加到您的网页中。为此,只需将external.IsSearchProviderInstalled("https://www.google.com");元素添加到<link>

即可
<head>

有关此处的更多信息:https://developer.mozilla.org/en-US/Add-ons/Creating_OpenSearch_plugins_for_Firefox#Autodiscovery_of_search_plugins