客户被第三方强制使用chrome44版本的浏览器,理由是这个版本浏览器比较稳定,而chrome44是2015年发布的,很多性能不能随着硬件更新得到充分利用,我们的系统最低版本基于54版本,当然80以上版本性能发挥会更好更稳定,特别是在页面绘制和渲染方面。这里不吐槽,只说方案,就是让客户在chrome44浏览器上打开高版本浏览器ChromeV92浏览我们的web系统,现在最新的是92,我就用92版本做示例。如何做到呢:

  1. 先下载chrome92版本,https://www.chromedownloads.net,然后解压成文件夹,当作绿色版本使用,这里说明一下,你下载的是exe文件,可以通过解压文件提取,然后目录结构是chrome/Chrome-bin/chrome.exe,还有一个chrome_proxy.exe和92.0.4515.159目录。
  2. 写一个注册表文件用来执行调用这个版本的谷歌浏览器:
Windows Registry Editor Version 5.00  

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

[HKEY_CLASSES_ROOT\openChromeV92\DefaultIcon]  
@="Chrome.exe,1"  

[HKEY_CLASSES_ROOT\openChromeV92\shell]  


[HKEY_CLASSES_ROOT\openChromeV92\shell\open]  

[HKEY_CLASSES_ROOT\openChromeV92\shell\open\command]  
@="D:\\Chrome_v92\\Chrome.exe --user-data-dir=D:\\Chrome_v92\\User file:///C:/openChromeV92/jump.html#%1"

openChromeV92是注册表名称,你执行了以后,在运行->regedit中可以看到这个名称,注册表里面的内容相信你都看得懂吧,--user-data-dir= 这个是chrome的指定存放用户数据目录的命令,必须要有,不然无法跳转,你下载的chrome92浏览器默认是exe,解压以后有个chrome_bin目录,里面没有User文件夹,你执行注册表后,它会自动创建,后面html文件就是默认打开的跳转页面地址,这里注意一下,这个页面地址开始没用file:///C:/xxx这种读取文件方式(而是用C:\xxx)导致#在浏览器打开时候被转码成%23找不到jump.html的情况。

  1. 准备一个跳转页面jump.html, 用来获取通过注册表传过来的参数(跳转目标网址),然后在高版本浏览器ChromeV92中打开。
<HTML>
<!-- saved from url=(0014)about:internet -->
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<script type="text/javascript">
var url=window.location.href;
var gotoUrl = url.substring(url.indexOf("openchromev92:")+14,url.length);
window.location.href=gotoUrl;
</script>
</BODY>
</HTML>

代码比较简单,这里不做阐述,就是截取目标网页地址在高版本浏览器ChromeV92打开。

  1. 最后验证一下,准备一个test.html,里面写入:
<a href="openChromeV92:http://www.baidu.com">跳转</a>

先用低版本浏览器打开test.html,然后点击跳转,会新打开一个

alt

点击打开Google chrome 便会打开高版本浏览器ChromeV92版本,查看右上角三个点->帮助->关于Google Chrome就看到看到浏览器的版本为92.xxxxxxxx