Chrome浏览器页面中跳转到IE浏览器页面

需求:在新系统中添加老系统的访问链接,由于老系统基于IE浏览器开发,现代浏览器对IE平台的兼容性比较差,所以会有在Chrome页面点击按钮或链接后打开IE浏览器并跳转到对应的链接的需求。

本文所示脚本文件:openIE.zip

方案一: bat脚本 + 注册表添加 自定义协议

  1. 新建 openIE.bat 脚本文件,用于启动IE浏览器并打开链接。 set m=%m:openIE:=% 截取参数的前缀,例如: openIE:http://www.baidu.com 将变为 http://www.baidu.com 。加 openIE: 前缀是为了标识这个链接需要在IE中打开。 C:\Program Files\Internet Explorer\iexplore.exe 为IE浏览器的默认路径,或者 C:\Program Files (x86)\Internet Explorer\iexplore.exe ,双斜杆是为了转义, %m% 为传递的参数。
bat 复制代码
@echo off
set m=%1%
set m=%m:openIE:=%
start "" "C:\\Program Files\\Internet Explorer\\iexplore.exe" %m%
exit
  1. 新建 openIE.reg 注册表文件,用于自定义openIE协议。command 的值为此协议触发(如点击链接)时调用的程序路径和参数。 C:\Program Files\openIE\openIE.batopenIE.bat 脚本存放路径。
reg 复制代码
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\openIE]
@="URL:openIE Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\openIE\shell]

[HKEY_CLASSES_ROOT\openIE\shell\open]

[HKEY_CLASSES_ROOT\openIE\shell\open\command]
@="\"C:\\Program Files\\openIE\\openIE.bat\" \"%1\""
  1. 使用管理员权限运行 openIE.reg 文件,将 openIE 协议导入注册表使其生效。

  2. 新建 index.html 页面测试,点击链接可正常跳转IE浏览器,且参数传递正常。往后需要跳转IE的链接前加 openIE: 前缀即可。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>test</title>
</head>
<body>
    <a href="openIE:http://www.baidu.com\login?a=123&b=456">openIE bat</a>
</body>
</html>

方案二: vbs脚本 + 注册表添加 自定义协议

  1. 新建 openIE.vbs 脚本文件。 Replace(args(0), "openIE:", "", 1, 1, 1) 同样用于截取参数的前缀。 CreateObject("WScript.Shell") 用于创建 WshShell 对象。 shell.Run "iexplore.exe " & url, 1, False 用于启动IE浏览器并访问截取前缀后的url,注意: "iexplore.exe "最后有个空格不可缺少
vbs 复制代码
Set args = WScript.Arguments
If args.Count > 0 Then
    url = Replace(args(0), "openIE:", "", 1, 1, 1)
    Set shell = CreateObject("WScript.Shell")
    shell.Run "iexplore.exe " & url, 1, False
End If
  1. 新建 openIE.reg 注册表文件。最后一句代码含义为使用wscript来启用脚本, /B 指启用批处理模式,禁止显示所有交互式提示, C:\Program Files\openIE\openIE.vbsopenIE.vbs 脚本存放路径, "%1%" 为传递的参数。
reg 复制代码
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\openIE]
@="URL:openIE Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\openIE\shell]

[HKEY_CLASSES_ROOT\openIE\shell\open]

[HKEY_CLASSES_ROOT\openIE\shell\open\command]
@="wscript.exe //B \"C:\\Program Files\\openIE\\openIE.vbs\" \"%1\""
  1. 同样使用管理员权限运行 openIE.reg 文件使其协议生效。

  2. 同样在 index.html 页面添加测试链接,点击也可正常跳转IE浏览器,且参数传递正常。

html 复制代码
<a href="openIE:http://www.baidu.com\login?x=666&y=888">openIE vbs</a>

拓展: 自动化安装脚本

新建 openIE 文件夹,将上述任意方案的 reg脚本文件 放到该文件夹中,然后在该文件夹中新建 install.bat 脚本文件,下述代码以 vbs 脚本为例, bat 脚本只需替换文件后缀即可。然后以管理员身份运行 install.bat 脚本即可。 注意:要确保三个文件在同一目录!!!

bat 复制代码
@echo off
setlocal enabledelayedexpansion

:: 检查管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo 请以管理员权限运行!
    pause
    exit /b
)

:: 获取当前脚本目录
set "currPath=%~dp0"
if not exist "%currPath%" (
	echo 无法获取当前所在目录!
	pause
    exit /b
)

:: 判断核心文件是否存在
if not exist "%currPath%openIE.vbs" (
	echo openIE.vbs文件缺失!
	pause
    exit /b
)
if not exist "%currPath%openIE.reg" (
	echo openIE.reg文件缺失!
	pause
    exit /b
)

:: 创建目标目录
set "targetDir=C:\Program Files\openIE"
echo 正在创建目录...
if not exist "%targetDir%" (
	mkdir "%targetDir%" 2>&1 || (
		echo 目录创建失败, 请检查权限或路径!
		pause
		exit /b
	)
)

:: 复制文件
echo 正在复制文件...
copy /y "%currPath%openIE.vbs" "%targetDir%\" 2>&1 || (
	echo openIE.vbs复制失败!
	pause
	exit /b
)

:: 导入注册表文件
set "regFile=%currPath%openIE.reg"
echo 正在导入注册表...
regedit /s "%regFile%" 2>&1 || (
	echo openIE.reg导入失败!
	pause
	exit /b
)

:: 5. 完成提示
echo 操作成功!
pause
exit /b

总结

方案 优点 缺点
bat脚本 代码简单便于理解 点击链接后会闪一下命令提示符窗口(cmd黑窗口)
vbs脚本 点击链接后不会闪命令提示符窗口 代码中使用到了vbs脚本的知识,不易理解

上述两种方案都可实现任意浏览器跳转到IE浏览器的需求,但是点击链接后浏览器会有提示弹窗,这是系统安全策略暂时没办法达到无感知跳转,有方案的铁铁评论区写出来,感谢!!!。

相关推荐
阿里云大数据AI技术3 天前
基于PAI-ChatLearn的GSPO强化学习实践
人工智能·llm·强化学习
代码哲学系4 天前
第一阶段:Java基础入门④Java核心API
java·强化学习
防搞活机5 天前
强化学习笔记:从Q学习到GRPO
笔记·深度学习·机器学习·强化学习
我爱C编程7 天前
基于Qlearning强化学习的水下无人航行器三维场景路径规划与避障系统matlab性能仿真
matlab·强化学习·qlearning·三维路径规划
有梦想的攻城狮7 天前
Q-Learning详解:从理论到实践的全面解析
强化学习·q-learning
威化饼的一隅12 天前
【多模态】DPO学习笔记
大模型·llm·强化学习·rlhf·dpo
雪碧聊技术17 天前
机器学习的算法有哪些?
监督学习·强化学习·无监督学习·半监督学习·机器学习的算法
山顶夕景18 天前
【LLM】Kimi-K2模型架构(MuonClip 优化器等)
大模型·llm·agent·强化学习·智能体
ziix21 天前
多源信息融合智能投资【“图神经网络+强化学习“的融合架构】【低配显卡正常运行】
人工智能·深度学习·神经网络·强化学习·图神经网络·gnn