zoukankan      html  css  js  c++  java
  • 使用JS检测自定义协议是否存在

    【该博客是拼接他人的,原因我们这边PC的开发人员问我,有没有关于js某个对象直接能检测手机或者电脑的自定义协议的,我上网搜了下,貌似移动端的解决比较多】

    最终解决方案:还是需要github上面大神写的方法:protocolcheck

    https://www.lefer.cn/posts/34578/

    之前在《自定义通用URL协议实现在浏览器中打开本机任意程序》介绍了通过自定义协议使的浏览器可以调起客户端本地程序的方法,在企业环境的实际应用中,又面临着如何检测自定义的协议是否存在的问题,ie下可以通过activex检测注册表项,chrome该怎么办呢?有没有通用的解决办法呢?答案是肯定的,甚至有人已经将该功能封装成了通用JS。具体如下。

    • 访问 github,下载 protocolcheck.js 。引用该js后,即可使用以下代码检测

      window.protocolCheck(href,callback)

      示例代码


      • <!DOCTYPE html>
        <html>
        <head lang="zh">
            <meta charset="UTF-8">
            <title>自定义协议探测</title>
        </head>
        <body>
            <h1>Click one of these labels:</h1>
            <div href="unexists:randomstuff">一个不存在的协议</div>
            <div href="ff://C:/Windows/System32/notepad.exe">一个存在的协议</div>
            <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
            <script src="protocolcheck.js"></script>
            <script src="example.js"></script>
        </body>
        </html>

        exampe.js

      • $(function () {
            $("div[href]").click(function (event) {
                window.protocolCheck($(this).attr("href"),
                    function () {
                        alert("协议未注册");
                    });
                event.preventDefault ? event.preventDefault() : event.returnValue = false;
            });
        });

        运行效果

    • 点击第一个a标签时,提示协议未注册,点击第二个a标签时,正常打开了记事本程序。

    • END

  • 相关阅读:
    一些简单的逻辑题
    3种数据类型之间的转换
    搭建selenium + Python环境的总结:
    杂记
    Eclemma的安装
    LR----实现WebService测试
    LR--实现HTTP协议的接口测试
    Loadrunner---解决乱码问题
    selenium常用API实例
    JMeter中响应数据显示乱码问题解决
  • 原文地址:https://www.cnblogs.com/tangjiao/p/9646855.html
Copyright © 2011-2022 走看看