业务系统需要不同浏览器打开解决方式

 在单点登录过程中,经常会遇到接入的系统需要使用不同的浏览器。比如OA使用chrome,邮件系统使用IE。针对不同情况我们一般要求客户统一浏览器。从网上找了几种方式来实现。

 

目前针对浏览器之间互相打开有3种建议:
1.客户不同版本的浏览器都安装在指定目录例如:
    IE:C:\Program Files\Internet Explorer\iexplore.exe
    FireFox: C:\Program Files (x86)\Mozilla Firefox\firefox.exe
    chrome: C:\Program Files (x86)\TSBrowser\TSBrowserLauncher.exe
    在系统跳转打开指定浏览器时根据默认路径打开浏览器
2.修改注册表
  修改注册表信息,需要客户在第一次使用统一认证的时候修改注册表信息。然后在系统跳转的时候根据注册表信息调用不同浏览器。
   要根据不同环境情况,进行修改注册表, 并且需要手动运行添加注册;在弹出IE窗口时,会弹出一个cmd的小黑窗口。
3.在电脑环境变量配置不同浏览器位置
   需要用户在自己使用的电脑配置浏览器的位置,通过环境变量找到浏览器的位置后启动浏览器。
   
这几种方式都需要客户参与进来而且工作量也很大。 还有是通过代码来打开,第一种在js代码中打开,这种需要支持ActiveXObject

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
  <body onload="pmLogin();">
  </body>
  <script type="text/javascript">
  	function pmLogin(){
  	try {
 		var pmurl = "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe -url http://www.baidu.com";
		var objShell= new ActiveXObject("wscript.shell");
		objShell.Run(pmurl);
		objShell = null;    
        window.opener=null;
        window.open('','_self','');
		window.close();    
  	}catch(e){ 
  		alert(e);
  	alert("火狐浏览器安装路径不正确,请联系管理员将浏览器安装在C:\\Program Files\\文件夹中 !");

	}    
}
  </script>
</html>

第二种是在jsp页面中嵌套java代码打开。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="utf-8"%>
<%@page import="java.io.IOException"%>
<%@page import="java.util.Map"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form>
	<div>

<%
		String firefox = "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe";
        Map map = System.getenv();
        for (Object key : map.keySet()) {
            String value = (String) map.get(key);
            System.out.println("key="+key+"--------》value="+value);

            if (value.contains("firefox.exe")) {
                firefox = value;
                break;
            }
        }
        try {
			Runtime.getRuntime().exec(new String[]{firefox, "http://www.baidu.com?useId=test"});
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		%>
	</div>
</form>
</body>
</html>

代码代开需要用户设置自己电脑中浏览器的位置,技术上就简单的多了。在用户第一次使用单点登录系统的时候引导客户设置每个系统所需浏览器的位置,并保存下来。存在问题是如果客户临时更换使用的电脑可能需要重新设置浏览器的位置。

上面的代码只是个demo,项目中需要根据实际情况进行分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值