使用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误杀。

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