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浏览器的需求,但是点击链接后浏览器会有提示弹窗,这是系统安全策略暂时没办法达到无感知跳转,有方案的铁铁评论区写出来,感谢!!!。

相关推荐
强化学习与机器人控制仿真14 小时前
RSL-RL:开源人形机器人强化学习控制研究库
开发语言·人工智能·stm32·神经网络·机器人·强化学习·模仿学习
山顶夕景1 天前
【RL】Does RLVR enable LLMs to self-improve?
深度学习·llm·强化学习·rlvr
神州问学7 天前
「干货长文」强化学习完全指南:从基础MDP到TRPO/PPO/GRPO算法演进
强化学习
九年义务漏网鲨鱼7 天前
【多模态大模型面经】现代大模型架构(一): 组注意力机制(GQA)和 RMSNorm
人工智能·深度学习·算法·架构·大模型·强化学习
ModestCoder_8 天前
【学习笔记】Diffusion Policy for Robotics
论文阅读·人工智能·笔记·学习·机器人·强化学习·具身智能
AI-Frontiers8 天前
小白也能看懂的RLHF:基础篇
强化学习
九年义务漏网鲨鱼11 天前
【大模型面经】千问系列专题面经
人工智能·深度学习·算法·大模型·强化学习
山顶夕景11 天前
【RL-LLM】Self-Rewarding Language Models
llm·强化学习·rl·dpo
山顶夕景11 天前
【RL】ORPO: Monolithic Preference Optimization without Reference Model
大模型·llm·强化学习·rl
Philtell13 天前
【强化学习基础概念】
强化学习