jsp页面打开子窗口 js
/* 自定义窗口 */
function newShowModalDialog(url, winName, width, height, screenX, screenY, ctrlStr) {
// 控制参数处理
function getCtrlValue(ctrlStr, n) {
var ctrlValue = ctrlStr.charAt(n);
var pattern = /[1yY]/;
if (ctrlValue == '' || !pattern.test(ctrlValue)) {
ctrlValue = 'no'; // 默认不显示
} else {
ctrlValue = 'yes';
}
return ctrlValue;
}
// 默认窗口宽度
if (width == null || width == '') {
width = 240;
}
// 默认窗口高度
if (height == null || height == '') {
height = 320;
}
var aw = screen.availWidth - 30; // 屏幕可用宽度
var ah = screen.availHeight - 50; // 屏幕可用高度
// 默认窗口水平居中
if (screenX == null || screenX == '') {
if (aw > width) {
screenX = (aw - width)/2;
} else {
screenX = 0;
}
} else {
if (aw <= width) {
screenX = 0;
}
}
// 默认窗口垂直居中
if (screenY == null || screenY == '') {
if (ah > height) {
screenY = (ah - height)/2;
} else {
screenY = 0;
}
} else {
if (ah <= height) {
screenY = 0;
}
}
// 默认窗口尺寸不可调,无滚动条/菜单栏/工具栏/状态栏
if (ctrlStr == null || ctrlStr == '') {
ctrlStr = 'nnnnn';
}
var resize = getCtrlValue(ctrlStr, 0); // 窗口尺寸可调参数
var scrollbars = getCtrlValue(ctrlStr, 1); // 滚动条参数
var menubar = getCtrlValue(ctrlStr, 2); // 菜单栏参数
var toolbar = getCtrlValue(ctrlStr, 3); // 工具栏参数
var status = getCtrlValue(ctrlStr, 4); // 状态栏参数
var features = "dialogWidth:" + width+"px"
+ ",dialogHeight:" + height+"px"
+ ",dialogLeft:" + screenX+"px" // 窗口X坐标 for IE
+ ",dialogTop:" + screenY+"px" // 窗口Y坐标 for IE
+ ",dialogScreenX=" + screenX // 窗口X坐标 for Netscape
+ ",dialogScreenY=" + screenY // 窗口Y坐标 for Netscape
+ ",resizable=" + resize // 窗口尺寸可调参数
+ ",scrollbars=" + scrollbars // 滚动条参数
+ ",menubar=" + menubar // 菜单栏参数
+ ",toolbar=" + toolbar // 工具栏参数
+ ",status=" + status // 状态栏参数
+ "";
var result= window.showModalDialog(url, winName, features);
return result;
}
父窗口调用:
var result= newShowModalDialog('node!list.action?nodeIds='+$("#nodeIds").val(), 'nodeIds', 600, 200, '', '', 'yynny');
//子窗口返回值
if (result != null && result != "") {
$("#nodeIds").val(result);
}
子窗口关闭:
//返回值
window.returnValue = nodeIdStr;
window.close();