背景:
    最近公司发展业务,和第三方系统对接时候要求两个系统间可以实现相互跳转。公司系统支持Chrome浏览器不再支持ie内核,第三方系统只支持IE内核浏览器,需要做到本公司系统点击链接打开第三方系统,即需要实现Chrome跳转ie。

    技术实现:
    IE跳转Chrome浏览器其实还好,因为IE下的 ActiveXObject 对象可以实现,直接用ActiveXObject对象调用cmd就可以实现跳转。但是chrome浏览器并没有ActiveXObject对象,无法调用cmd完成。曲线救国,只能通过自定义协议来完成跳转,就是更改注册表的形式完成。就像在用百度网盘下载东西的时候,它会提示你打开客户端。

    1.在注册表里面自定义一个这样的协议来,代码如下,新建一个alert文本,复制进去,把后缀修改为 .reg 即可。

    1. Windows Registry Editor Version 5.00
    2. [HKEY_CLASSES_ROOT\alert]
    3. @="URL:Alert Protocol"
    4. "URL Protocol"=""
    5. [HKEY_CLASSES_ROOT\alert\DefaultIcon]
    6. @="iexplore.exe,1"
    7. [HKEY_CLASSES_ROOT\alert\shell]
    8. [HKEY_CLASSES_ROOT\alert\shell\open]
    9. [HKEY_CLASSES_ROOT\alert\shell\open\command]
    10. @="cmd /c set m=%1 & \"C:\\Program Files\\alert\\openIE.bat\" %%m%% & exit"

    然后运行添加到注册表之后,在页面中可以通过a标签连接使用:

    1. <a href="openIE:www.baidu.com">Chrome调起IE</a>

    但是这样有很多的小毛病,用户需要点击才能添加注册表,添加注册表的时候会出现警告弹框,而且跳转的时候还会出现一个 cmd 的小黑框。

    下面提供一个封装好的exe可执行程序,可以直接运行后在页面使用:

    1. <a href="alert:www.baidu.com">Chrome调起IE</a>

    解压alert.exe,文件列表如下图:
    image.png
    alert.exe下载:链接: https://pan.baidu.com/s/1tK48f862V2D_T9YS2QsuRA 提取码: rh56。

    缺点:
    该方案存在一个缺点是从chrome跳转到ie时候会闪一下cmd的小黑框。可以通过vbs方案解决。后续更新…