此方式支持各浏览器ie、edge、chrome、firefox等,实现方式是通过在注册表中添加启动本地谷歌浏览器的协议,使得前端执行某命令时,启用注册表的命令打开本地谷歌浏览器。
一、新增注册表
新建一个txt文件,命名随意,然后打开编写添加注册表内容,如下所示:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\openChrome]
@="URL:openChrome Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\openChrome\DefaultIcon]
@="cmd.exe,1"
[HKEY_CLASSES_ROOT\openChrome\shell]
[HKEY_CLASSES_ROOT\openChrome\shell\open]
[HKEY_CLASSES_ROOT\openChrome\shell\open\command]
@="cmd /c start chrome %1"
注1:[HKEY_CLASSES_ROOT\openChrome\shell\open\command]下写的是前端调用协议后,具体执行的命令,例如上文 cmd /c start chrome %1,/c 代表cmd命令执行后关闭窗口,start chrome 代表打开谷歌浏览器, %1代表参数,用于接收想用浏览器打开的地址,%1前有空格!!!
编写完成后,保存关闭txt文件,将文件后缀修改为.reg
二 导入注册表
通常情况下,注册表信息编写完成后,双击reg文件,即可完成注册表的导入。
但win10操作系统有时不允许这样操作,因为过于危险,会拒绝导入,如下图所示:
这种情况即便是系统管理员权限也无法通过双击运行的方式导入,只能
按住键盘 win
加 R
键,输入regedit
打开注册表编辑器进行手动导入,例如下图。
三 前端调用
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<!--
注意openChrome要与注册表中的[HKEY_CLASSES_ROOT\openChrome] 拼写一致
访问地址前要加空格,不然光打开了浏览器,却获取不到访问地址,
-->
<a href="openChrome: www.baidu.com">打开谷歌浏览器访问百度</a>
<!--
有时上面的写法也会获取不到访问地址,这时用下方的写法
-->
<button onclick="openUrlByChrome('openChrome:\\www.baidu.com')">打开谷歌浏览器访问百度</button>
</body>
<script type="text/javascript">
// 用Chrome浏览器打开指定url
function openUrlByChrome(url) {
alert(url);
try{
window.location.href = url;
}catch(e){
// TODO handle the exception
alert("请确认本机是否正确安装谷歌浏览器");
}
}
</script>
</html>