事情是這樣的,客戶讓作一個單點登陸的功能,可是另外一個系統和咱們公司的系統部署在同一個服務器上,致使在同一個瀏覽器使用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誤殺。服務器