事情是这样的,客户让作一个单点登陆的功能,可是另外一个系统和咱们公司的系统部署在同一个服务器上,致使在同一个浏览器使用JS原生代码window.open(url);打开该浏览器的新标签页,会致使咱们的系统登录session被篡改(推测多是同一个key吧,设计系统的人真是蛋疼,就不会加上公司缩写嘛),致使被踢下线。javascript
而通过测试,打开其余浏览器单点登陆后,就不会把本系统的登录信息注销,由于不一样的浏览器的session就不同,固然cookie也是同理。html
解决思路:java
在本浏览器中打开其余浏览器,因JS只能在浏览器中调用,因此只能使用ActiveX控件,但ActiveX控件只能在IE内核的浏览器中使用(毕竟是微软亲儿子),在谷歌浏览器不适用,苹果的safari浏览器没试过,应该也不行,由于ActiveX控件是调用windows系统的运行功能(win + R),这个要和客户协商好。shell
解决方法:windows
话很少说,上代码:浏览器
<!DOCTYPE html> <html> <head> <title>使用ActiveX打开其余浏览器</title> </head> <body> <button type="button" onclick="openIE();">打开IE浏览器</button> <script type="text/javascript"> function openIE(){ var myShell = new ActiveXObject("wscript.shell"); var cmd = 'C:\\Program Files\\Internet Explorer\\iexplore.exe http://www.baidu.com'; prompt('cmd', cmd); myShell.exec(cmd); myShell = null; } </script> </body> </html>
// 最后说一下,这个HTML文件容易被360误杀。服务器