<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
</head>
<body>
<input type="text" name="data_key" id="data_key" />
<input type="text" name="data_value" id="data_value" />
<input type="button" id="open_child_window" value="list_datas"/>
<script type="text/javascript">
window.onload = function(){
//取得打开子窗口的按钮
var openChildBtn = document.getElementById("open_child_window")
//打开新窗口函数
function openNewWindow(url){
window.open(url)
}
//调用打开新窗口函数,指定新窗口地址
function openChildWindow(){
openNewWindow("child.html")
}
//为按钮绑定事件
if (document.all) {
openChildBtn.attachEvent("onclick",openChildWindow)//IE
}else{
openChildBtn.addEventListener("click",openChildWindow)//非IE
}
}
</script>
</body>
</html>
子窗口代码(child.html)这个必须按这个命名,如果要改,需要把父窗口代码里面的child.html也同步改掉
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
<style type="text/css">
body{font-size:12px}
.data_list{background:#ddf}
.data_list td{background:white}
</style>
</head>
<body>
<table cellspacing="1" cellpadding="3" border="0" class="data_list">
<tr>
<td id="data_key_1">data_key_1</td>
<td id="data_value_1">data_value_1</td>
<td><input type="button" id="data_submitor_1" value="submit"/></td>
</tr>
<tr>
<td id="data_key_2">data_key_2</td>
<td id="data_value_2">data_value_2</td>
<td><input type="button" id="data_submitor_2" value="submit"/></td>
</tr>
<tr>
<td id="data_key_3">data_key_3</td>
<td id="data_value_3">data_value_3</td>
<td><input type="button" id="data_submitor_3" value="submit"/></td>
</tr>
<tr>
<td id="data_key_4">data_key_4</td>
<td id="data_value_4">data_value_4</td>
<td><input type="button" id="data_submitor_4" value="submit"/></td>
</tr>
</table>
<script type="text/javascript">
//向父窗口发送数据
function SendDataToParent(key,value){
if (window.opener &&window.opener.document.getElementById("data_key")&&window.opener.document.getElementById("data_value")) {
window.opener.document.getElementById("data_key").value = key
window.opener.document.getElementById("data_value").value = value
}
}
window.onload = function(){
//如果父窗口已经被关闭或者不存在,直接返回
if (!window.opener) return
//遍历所有的数据
for(var i=1i<5++i){
//取得提交按钮
var btn = document.getElementById("data_submitor_" + i.toString())
//如果按钮有效
if (btn) {
//为按钮绑定事件
if(document.all){//IE
//attachEvent响应函数中this指针是指向window而不是指向事件响应对象的,所以需要一个函数来实现对象传递
function GetEventHandle(tag) {
return function () {
var temp = tag.id.split("_")
var index = temp[temp.length-1]
SendDataToParent(document.getElementById("data_key_"+index).innerHTML,document.getElementById("data_value_"+index).innerHTML)
}
}
btn.attachEvent("onclick",GetEventHandle(btn))
}else{//非IE
btn.addEventListener("click",function(){
var temp = this.id.split("_")
var index = temp[temp.length-1]
SendDataToParent(document.getElementById("data_key_"+index).innerHTML,document.getElementById("data_value_"+index).innerHTML)
})
}
}
}
}
</script>
</body>
</html>
我都写了注释的,如果还不清楚就补充问题
简单回答:自己看,不再赘述用iframe、弹出子页面刷新父页面
iframe
parent.location.reload()
弹出子页面
window.opener.location.reload()
子窗口刷新父窗口
self.window.opener.locaction.reload()
刷新一open()方法打开的窗口
window.opener.location.href = window.opener.location.href
刷新以winodw.showModelDialog()方法打开的窗口
window.parent.dialogArguments.document.execCommand('Refresh')
或
Response.Write("<script>window.location.href = window.location.href</script>")
刷新本页Response.Write("<script>window.location.href=window.location.href</script>")
刷新父页和本页面:
Response.Write("<script>alert('提交成功!')window.location.href=window.location.hrefwindow.opener.location=window.opener.location</script>")
使用window.returnvalue在父级页面打开子集页面,可以获取子集的返回值。在子集中给window.returnvalue赋值,将在父级中获得这个值。
父级中这样写:
var returnVal=window.ShowModeDialog(xxxxx)
子集中这样写:
window.returnvalue=input框的值。
父级中的returnVal变量就是你要的值了。
除了这个,还可以使用cookie、sessionstrog等来存储,不过window.returnvalue是最简便也是最适合你的。