【web】自定义协议Protocol URL

URL Protocol(自定义协议)可以让web页面调用本地exe程序,这个神奇的功能是怎么实现的呢?

URL Protocol

URL Protocol,没错就是标题里所说的自定义协议。这玩意儿大家最常见的比如迅雷、电驴等。我们平时在电影天堂下载电影的时候点击链接浏览器会启动本地迅雷进行下载。

下面是某部电影的下载链接浏览器检查元素后

<a href="thunder://QUFmdHA6Ly95Z2R5ODp5Z2R5OEB5ZzQ1Lm..."/>

这里的"thunder"就是url protocol。

chrome打开一个IE

往注册表注册

下面我们通过在chrome上打开一个IE,来演示用法

首先创建一个test.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\openIE]

@="URL:openIE Protocol"

"URL Protocol"=""

[HKEY_CLASSES_ROOT\openIE\DefaultIcon]


[HKEY_CLASSES_ROOT\openIE\shell]

[HKEY_CLASSES_ROOT\openIE\shell\open]

[HKEY_CLASSES_ROOT\openIE\shell\open\command]

@="cmd /c set m=%1 & call set m=%%m:openIE:=%% & call \"C:\\Program Files\\Internet Explorer\\iexplore.exe\" %%m%% & exit"


点击test.reg,在弹出框中选择是
在这里插入图片描述

  1. Windows Registry Editor Version 5.00是注册表工具的版本信息,必须放在首行或文件开头的位置。
  2. HKEY_CLASSES_ROOT下面添加一个openIE树,其中openIE的名称就对应着自定义URL Protocol的名称,在web中调用的时候需要这个名称;
  3. @=“URL:openIE Protocol” 可以是任意字符串,在触发时产生提示信息
    在这里插入图片描述
    如果配置为空"",或直接不配置,则会提示
    在这里插入图片描述
    4.@="cmd /c set m=%1 & call set m=%%m:openIE:=%% & call \"C:\\Program Files\\Internet Explorer\\iexplore.exe\" %%m%% & exit"
  • cmd:表示以cmd命令行调用ie,瞬间会有黑色的命令行框出现。

  • call:批处理语法,和start命令都可以用在这个地方。
    形式为

  • set m=%%m:openIE:=%% : 应该是从后面页面处截取参数信息。比如
    取得的值是http://a.com.cn。

  • C:\\Program Files\\Internet Explorer\\iexplore.exe: IE的安装路径。

  • %1 :表示携带的参数;后面在html触发时,会传递url给ie,否则,ie会仅打开空白页。

    这个参数等价于在ie快捷方式 目标后添加一个url,那么默认页就是这个url。
    在这里插入图片描述

  • exit :类似bat批处理中的exit语法,退出cmd。但是如果不加该参数,那么会重复打开一个IE并关闭,造成死循环效果,不知道是何原因。

上面代码貌似可以直接配置成
C:\Program Files\Internet Explorer\iexplore.exe “%1” exit
但是目前出的问题是%1这个参数没生效,老是打开空白页,有待研究。

HTML测试

手动创建一个test.html文件

<html>
<head>
  <script type="text/javascript">
    function clickRadio() {
      window.location.href = "openIE:http://a.com.cn";
    }
  </script>
</head>

<body>
  <input type="button" onclick="clickRadio()" value="Click  button" />

</body>

</html>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值