不能直接从浏览器环境调用另一个可执行文件,会有很大的安全问题。
您可以安装浏览器插件或添加注册表来实现此目的。
最简单的解决方案是为 IE 添加一个 URI 方案,格式中的链接ie:http://example.com
将启动 IE 并访问http://example.com
。
要为 IE 添加 URI 方案,请添加
此注册表:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\ie]
"URL Protocol"=""
@="URL:IE Protocol"
[HKEY_CURRENT_USER\Software\Classes\ie\shell]
[HKEY_CURRENT_USER\Software\Classes\ie\shell\open]
[HKEY_CURRENT_USER\Software\Classes\ie\shell\open\command]
@="cmd /c set url=\"%1\" & call set url=%%url:ie:=%% & call start iexplore -nosessionmerging -noframemerging %%url%%"
一些重要的注意事项:
- 你必须
%1
用双引号括起来。否则带有多个参数的 url likeexample.com?a=1&b=2
将被剥离为example.com?a=1
, 之后的参数&
将被忽略。
- 调用时必须去掉双引号
iexplore
。如果您不删除双引号并从 chrome 打开多个 IE 窗口,则只有第一个 IE 窗口会获得正确的 URL。set url=%%url:\"=%%
但是用命令或删除引号set url=%%url:~1,-1%%
不起作用。
- 如果您无法删除这些引号,请添加开关
-nosessionmerging
和-noframemerging
到iexplore
. 这些是用于控制 IE 的“合并”行为的命令行选项。