1、打开子页面(项目应用:左下角消息弹出框)
window.open('message.jsp','消息推送窗口','height=260,width=360,status=0,toolbar=no,menubar=no,titlebar=no,depended=yes,location=no,scrollbars=no,top='+screen.availHeight+',left=0,resizable=no');
用法:
window.open(pageURL,name,parameters)
其中:
pageURL 为子窗口路径
name 为子窗口句柄
parameters 为窗口参数(各参数用逗号分隔)
参数 | 取值范围 | 说明
alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
depended | yes/no | 是否和父窗口同时关闭
directories | yes/no | Nav2和3的目录栏是否可见
height | pixel value | 窗口高度
hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
innerHeight | pixel value | 窗口中文档的像素高度
innerWidth | pixel value | 窗口中文档的像素宽度
location | yes/no | 位置栏是否可见
menubar | yes/no | 菜单栏是否可见
outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
resizable | yes/no | 窗口大小是否可调整
screenX | pixel value | 窗口距屏幕左边界的像素长度
screenY | pixel value | 窗口距屏幕上边界的像素长度
scrollbars | yes/no | 窗口是否可有滚动栏
titlebar | yes/no | 窗口题目栏是否可见
toolbar | yes/no | 窗口工具栏是否可见
Width | pixel value | 窗口的像素宽度
z-look | yes/no | 窗口被激活后是否浮在其它窗口之上
2、打开的子窗口操作
关闭子窗口:
window.close();
调用父窗口的方法:
window.opener.method();
或者
window.parent.method();
父窗口给子窗口传参:
window.open('returnMessage.jsp?id='+sendUserId+'&name='+userName,'测试','height=200,width=290');
子窗口接收:
var params=location.search.substring(1);
var sendUserId=params.substring(params.indexOf("=")+1,params.indexOf("&"));
var sendUserName=params.substring(params.lastIndexOf("=")+1);
3、如何让父窗口打开新的窗口:调用父窗口的方法,方法中使用window.open();
4、父窗口给子窗口传参:一个json
父:window.open("test.html?json="+escape(json2));
子:
var json=location.search;
json=unescape(json).match(/\{.+?\}/);
data= eval("("+json+")");
alert(data.name);
5、父窗口给子窗口传参:json数组
父:sessionStorage.setItem("data",JSON.stringify(data));
子:var temp=sessionStorage.getItem("data");
data = JSON.parse(temp);
其中,JSON.stringify(data)方法,是把json转换成字符串,一个json或者json数组都可以
子页面JSON.parse();方法可以再转换回来
另一个:sessionStorage类似于Java中的session,将数据存放在回话中,这样其他js可以调用。不过只能是字符串。
6、