模态窗口会阻塞父页面的操作,打开非模态窗口需要使用window.open()方法,使得父页面和新窗口可以互不影响。下面记录本人创建非模态窗口的过程。
使用RuoYi框架版本:springboot + thymeleaf
1、在父页面上创建一个按钮,并绑定单击事件:点击后弹出非模态窗口
2、绑定openWindow()方法。窗口参数比较简单,自己调整即可。里面的companyName、url等是本人自己的业务参数,各位随自己业务的而定。
function openWindow()
{
debugger;
if (companyName=="" || companyName==null){
$.modal.alertError("请确认公司名称");
return;
}
companyName =encodeURI(companyName);
companyName=encodeURI(companyName);
var url=ctx +"eventDetail/jpAnalyze/"+companyName;
var winName="newWin";
var awidth=screen.availWidth/6*5; //窗口宽度,需要设置
var aheight=screen.availHeight/5*4; //窗口高度,需要设置
var atop=(screen.availHeight - aheight)/2; //窗口顶部位置,一般不需要改
var aleft=(screen.availWidth - awidth)/2 + 500; //窗口放中央,一般不需要改
var param0="scrollbars=0,status=0,menubar=0,resizable=no,location=0"; //新窗口的参数
var params="top=" + atop + ",left=" + aleft + ",width=" + awidth + ",height=" + aheight + "," + param0 ;
win=window.open(url,winName,params); //打开新窗口
win.focus(); //新窗口获得焦点
}
3、创建映射
这个方法所在类本人就略过了。
@GetMapping("/jpAnalyze/{companyName}")
public String showJp(@PathVariable("companyName")String companyName,ModelMap mmap) throws UnsupportedEncodingException {
companyName = java.net.URLDecoder.decode(companyName,"UTF-8");
mmap.put("companyName",companyName);
return "eventverification/jpInfo";
}
4、打开非模态窗口
此页面只需要放在templates的相对目录即可。形如:



