关于chrome跨浏览器调IE大抵三种方案:
1.IETab插件,仅支持40多老版本的chrome;
2.IEDriverServer,每调用一个浏览器实例就得装一个对应驱动,浏览器重新安装也就失效了;
3.自定义协议,windows自己调用浏览器;
以上三种方案对比下来第三种最优,原理就是自定义协议,例如OpenIE,OpenChrome协议,调用注册表中命令打开对应程序,不过像IE可以写死,但是有些比如chrome,firefox可能不在默认目录我们就需要从环境变量中获取地址打开,如果使免安装绿色版就没办法了。
首先自定义OpenIE协议,写入注册表
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\openIE]
@="URL:openIE Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\openIE\DefaultIcon]
@="iexplore.exe,1"
[HKEY_CLASSES_ROOT\openIE\shell]
[HKEY_CLASSES_ROOT\openIE\shell\open]
[HKEY_CLASSES_ROOT\openIE\shell\open\command]
@="cmd /c set m=%1 & \"C:\\Program Files\\OpenIE\\openIE.bat\" %%m%% & exit"
可以用regedit /s默认执行也可以用压缩软件直接打包
打开自解压选项,选择覆盖所有文件
解压到什么路径可自定义,我这边安装到C:\Program Files\,并且在安装完成后执行一个vbs文件(下文有解释)
勾选这个安装时就不会弹出框框了
因为要往C盘写东西所以需要管理员权限
最终把上面注册表的内容写到里面
建一个批处理文件,这个批处理也就是我们在注册表中调用的那个cmd命令(为了避免打开黑框)
@echo off
set m=%m:openIE:=%
set m="%m:separator=&%"
start "" "C:\\Program Files\\Internet Explorer\\iexplore.exe" %m%
exit
安装完没有提示我们添加个提示框prompt.vbs
msgbox "恭喜您安装成功,请刷新页面",0,"提示"
点击下载OpenIE.exe
安装完成后弄个页面试试效果
<!DOCTYPE HTML>
<HTML>
<body>
<a href="openIE:https://blog.csdn.net/u013406199/article/details/107922677">点我使用外部协议运行IE打开CSDN</a>
</body>
</HTML>