使用ActiveX控件打開IE瀏覽器

        事情是這樣的,客戶讓做一個單點登錄的功能,但是另一個系統和我們公司的系統部署在同一個服務器上,導致在同一個瀏覽器使用JS原生代碼window.open(url);打開該瀏覽器的新標籤頁,會導致我們的系統登陸session被篡改(推測可能是同一個key吧,設計系統的人真是蛋疼,就不會加上公司縮寫嘛),導致被踢下線。

        而經過測試,打開其他瀏覽器單點登錄後,就不會把本系統的登陸信息註銷,因爲不同的瀏覽器的session就不一樣,當然cookie也是同理。

        解決思路:

        在本瀏覽器中打開其他瀏覽器,因JS只能在瀏覽器中調用,所以只能使用ActiveX控件,但ActiveX控件只能在IE內核的瀏覽器中使用(畢竟是微軟親兒子),在谷歌瀏覽器不適用,蘋果的safari瀏覽器沒試過,應該也不行,因爲ActiveX控件是調用windows系統的運行功能(win + R),這個要和客戶協商好。

        解決方法:

        話不多說,上代碼:

<!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誤殺。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章