相关疑难解决方法(0)

如何检测浏览器的协议处理程序?

我创建了一个自定义URL协议处理程序.

http://

mailto://

custom://

我已经注册了一个WinForms应用程序来做出相应的响应.一切都很好.

但我希望能够优雅地处理用户尚未安装自定义URL协议处理程序的情况.

为了能够做到这一点,我需要能够检测浏览器的注册协议处理程序,我想从JavaScript.但我一直无法找到一种方法来查询信息.我希望找到解决这个问题的方法.

感谢您提供的任何想法.

javascript browser protocols moniker

77
推荐指数
8
解决办法
5万
查看次数

启动应用程序(如果已安装)或重定向下载 - 窗口

Stack Overflown这个问题中提到:

在每个repo上,GitHub都有一个标记为"Clone in Desktop"的按钮(例如:https://github.com/github/developer.github.com).如果您安装了GitHub for Mac,则href类似于"github-mac:// openRepo/https://github.com/github/developer.github.com ".这将打开GitHub for Mac并提供克隆回购.如果不这样做,则href为" http://mac.github.io ".这是GitHub for Mac的下载页面.我想在我的网站上做类似的事情:如果已安装,请打开我的应用程序,如果没有则重定向下载.如何才能最好地完成?

答案是关于Github Conduit,但据我所知,Github Conduit仅适用于Mac的Github.

我有同样的问题,仅适用于Windows操作系统.GitHub如何知道GitHub是否安装在计算机上?


正如deepcurious在说他们的答案,我们需要使用下面的代码,如果协议注册的检查:

$("a[href*='github-windows://']").click(function(e) {
    var el = $(this);
    setTimeout(function() {
        window.location = el.data("data-href-alt");
    }, 200);

    // once you do the custom-uri, it should properly execute the handler, otherwise, the settimeout that you set before will kick in
    window.location = el.data("href");

    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

我有以下HTML链接:

<a href="github-windows://openRepo/https://github.com/jquery/api.jqueryui.com" data-href-alt="https://www.example.com/app-not-installed">Clone …
Run Code Online (Sandbox Code Playgroud)

windows macos github url-scheme github-for-windows

10
推荐指数
1
解决办法
823
查看次数

如何确定浏览器是否支持超链接的数据URI

除浏览器嗅探外,有没有办法确定浏览器是否支持使用数据URI进行超链接?

这是上下文:

我创建一个链接,要么下载使用一个方便的数据URI或者,通过JavaScript产生,如果浏览器不支持使用数据URI的超链接信息的CSV文件,生成所需内容的HTML表格.

现在我的代码检查window.URL属性的存在,这在IE9及以下版本中不存在.(现在这个工作正常,因为我需要支持的IE用户在兼容模式下运行,模拟IE8.)

if(window.URL){
    downloadLink.href = "data:text/csv;charset=utf-8," + encodeURIComponent(data);
    downloadLink.setAttribute("download","download.csv");
}else{
    downloadLink.href= "#";
    downloadLink.innerHTML = "table view";
    downloadLink.onclick = function(){
        // build and display HTML table
        return false;
    };
}
Run Code Online (Sandbox Code Playgroud)

然而,有一个与在Internet Explorer中的新版本(10,11,以及边缘),它们支持的window.URL对象但有一些重叠不会允许数据URI的超链接.

如何确保下载CSV的链接永远不会显示给不支持此类功能的浏览器?

html javascript internet-explorer data-uri browser-feature-detection

6
推荐指数
1
解决办法
126
查看次数