常用两种返回方法:
1.window.showModalDialog(url,args,dialogattrs)
参数说明:
url:弹出页面地址
agrs:主窗口传给对话框的参数,可以是任意类型(数组也可以)
dialogattrs:弹出窗口的样式参数
模式对话框用法:
主窗口:var value =window.showModalDialog('test.jsp',strs,'resizable:yes');
弹出框中通过window.returnValue设置返回值。
2。window.open:
【父窗口】
代码如下:
打开子窗口
//这是父页面所需脚本,把你的ID传进来
function ShowDialog(ID) {
//生成一段随机数字,如果两次传递的同一个ID的话,弹出的页面是不会刷新的,有了随机数就能刷新了
var temp = "";
for (var i = 0; i < 10; i++) {
temp += parseInt(Math.random() * 10);
}
//弹出模式窗体 三个参数
//第一个是路径,可以是你的CGI路径
//第二个是隐性参数,一般是用来在弹出页面判断是由什么方式打开的,如果是直接打开的弹出页面,是不会有这个参数的
//第三个参数是弹出窗口的参数,高、宽、滚动条
var rv = window.showModalDialog("YourWebPage.html?fk=" + temp + "&id=" + ID, "lock", "dialogHeight:130px;dialogWidth:516px;scroll:yes;");
//判断弹出页面的返回参数,然后跳转至当前页面,相当于刷新
if (rv == "jump")
window.location = "LocalWebPage.html";
}
//以下是弹出页面 所需要写的脚本
window.onload = function () {
var str = window.dialogArguments;
if (str != "lock") {
while (1 == 1) {
alert("请勿直接打开该页面!");
}
}
}
//以下是执行完你的cgi以后使用的脚本
window.returnValue = 'jump';this.close();
//补充,如果弹出页面有回传事件的话,在head中间补上
==================================================================
以下是实例,请将页面保存为A.html和B.html,纯手写
可以在原页面上插入一个iframe对象,一开始是隐藏的,然后让它显示。在表单提交后,通知父窗口将其隐藏,比如在a.cgi的提交事件中写入:
parent.document.getElementById("cgi_page").style.display="none";
parent.window.location.reload();
本来这种需求用ajax是最好的。如果是ajax,那就是另外一种做法。一般是弹出一个div,在里面做一个表单,表单中有一个button,点这个button之后就向服务器发送数据,然后隐藏该div。
这样的话由于都在同一个页面上,所以提交后就不用再引用parent。
这个最好用弹出窗口会简单多了,只要在弹出窗口的提交事件里向页面输出js关闭代码的同时刷新一下父级页面就可以了,代码如下:
parent.location.reload();