我已经看到这里有人问过这个问题 Can I force a link to open in a specific browser?
我找到了一种可行的解决方案 例如。
window.open("microsoft-edge:https://www.google.com");
这适用于边缘,但我正在寻找类似的解决方案以在Internet Explorer中打开。
尝试过
'ie','iexplore','internet-explorer'
我也不能依靠用户在浏览器中安装“ open in”扩展名。
由于webapp将在公司系统中运行,因此我可能会选择编辑注册表的路线,但是只是想在此处查看一下此路线。
答案 0 :(得分:3)
看来IE并未将自己注册为URI方案。
为了使应用程序(在这种情况下为浏览器)侦听URI方案,需要在注册表中注册(至少对于Windows)。我只是运行了一个小脚本,列出了所有已注册的URI方案,与Edge不同,我看不到任何代表Internet Explorer的东西。 (我已经安装了它。)
当然,最好的方法是完全避免使用Internet Explorer,因为它已被弃用。但是,如果您坚持使用它,则似乎只能自己编辑注册表。
答案 1 :(得分:-1)
最简单的解决方案是为IE添加URI方案,格式为ie:http://example.com
的链接将启动IE并访问http://example.com
。
要为IE添加URI方案,请添加 this registry:
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
用双引号引起来。否则,带有多个参数(例如example.com?a=1&b=2
)的url将被剥离为example.com?a=1
,在{{1}之后的参数}将被忽略。 &
时必须删除双引号。如果您不删除双引号并从chrome打开多个IE窗口,则只有第一个IE窗口将获得正确的URL。但是用命令iexplore
或set url=%%url:\"=%%
删除引号是行不通的。set url=%%url:~1,-1%%
和-nosessionmerging
添加到-noframemerging
。这些是command-line options控制IE的“合并”行为。