java 两个系统间的页面跳转(系统A跳转系统B)
系统A
//js(不传参)
window.open("http://"+ location.hostname +"/tempView");
//js(传参)
window.open("http://"+ location.hostname +"/tempView?token=" + encodeURIComponent(document.getElementById("token").value));
系统B
方法一(不传参)
//Controller
@RequestMapping(value = "/tempView")
public String tempView(){
///yxcj/tempView.html为templates下边的页面(如果不是,需要另外配置)
return "/yxcj/tempView.html";
}
方法一(传参)
//Controller
@RequestMapping(value = "/tempView")
public ModelAndView tempView(@RequestParam("token") String token) throws Exception {
//根据秘钥和密文解密
//String decryptData = DesbaseTool.decrypt(token);
///JSONObject jsonObject;
//jsonObject = (JSONObject) JSONObject.parse(decryptData);
//String userID = (String) jsonObject.get("userID");
String userID = "userID";
String decryptData = "userPassword";
//模拟登录
Subject subject = SecurityUtils.getSubject();
Gt3UsernamePasswordToken gt3UsernamePasswordToken = new Gt3UsernamePasswordToken(userID ,decryptData);
subject.login(gt3UsernamePasswordToken);
ModelAndView view = new ModelAndView();
view.setViewName("redirect:" + "/view/yxcj/yxzlfl.html");
view.addObject("token", token);
return view;
}
前端(我这里另外添加了浏览器版本的判断)
//tempView.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>tempView</title>
<link rel="stylesheet" href="/iframe/assets/libs/layui/css/layui.css"/>
<link rel="stylesheet" href="/iframe/assets/module/admin.css?v=317"/>
<!--[if lt IE 9]>
<script src="/js/html5shiv/html5shiv.min.js"></script>
<script src="/js/html5shiv/respond.min.js"></script>
<![endif]-->
</head>
<style type="text/css">
#div1{
width: 10px;
height: 10px;
/* 使当前标签在父标签位置固定 */
position: absolute;
top: 50%;
left: 50%;
margin: 0 0 0 0;
}
#updow {
width: 500px;
height: 400px;
border: 1px solid lightgrey;
display: block;
/* 使当前标签在父标签中保持水平、垂直居中 */
top: 50%;
left: 50%;
margin-left: 32%;
margin-top: 8%;
}
</style>
<body>
<input id="token" th:value="${token}" style="display: none">
<div id="div1"></div>
<div id="updow" align="center">
<div style="margin-top: 30%">
<span id="content"></span>
</div>
</div>
<!-- js部分 -->
<script>
var content = document.getElementById("content");
content.innerHTML = "正在加载中,请稍后……";
var version = IEVersion();
if(version < 0 || version > 8){
//不是IE浏览器,打开自己的窗口
window.open("http://"+ location.hostname +"/g3LCLToFirefox?token=" + encodeURIComponent(document.getElementById("token").value), "_parent");
}else {
//IE浏览器,打开火狐浏览器
var WshShell = new ActiveXObject("WScript.Shell");
//添加可信站点或IP
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\","");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\http","2","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Ranges\\Range100\\:Range",location.hostname);
//修改IE ActiveX 安全设置
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1001","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1004","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1200","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1201","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1208","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\1405","0","REG_DWORD");
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\2\\2201","0","REG_DWORD");
//禁用弹出窗口阻止程序
WshShell.RegWrite("HKCU\\Software\\Microsoft\\Internet Explorer\\New Windows\\PopupMgr","no");
var a = WshShell.Run("cmd.exe /c start firefox http://"+ location.hostname +"/g3LCLToFirefox?token=" + encodeURIComponent(document.getElementById("token").value),0,true);
if(a == 1){
content.innerHTML = "本机未检测到火狐浏览器,请先<a href=\"/downloadFile/Firefox Setup 64.exe\" style=\"color: #00beff;\">点击下载并安装火狐</a>后,再进行操作!";
}else {
window.opener = null;//为了不出现提示框
window.close();//关闭窗口
}
}
function IEVersion() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if(isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if(fIEVersion == 7) {
return 7;
} else if(fIEVersion == 8) {
return 8;
} else if(fIEVersion == 9) {
return 9;
} else if(fIEVersion == 10) {
return 10;
} else {
return 6;//IE版本<=7
}
} else if(isEdge) {
return 'edge';//edge
} else if(isIE11) {
return 11; //IE11
}else{
return -1;//不是ie浏览器
}
}
</script>
</body>
</html>