问题的关键是,让需要互相调用的页面得到对方的窗口引用,例如有两个窗口页面a.htm和b.htm,其中a.htm中有变量winb指向b窗口,b.htm中有变量wina指向a窗口,这样,例如在a窗口上作了一个操作,生成一个结果数据r,想传到b窗口中,可在操作的事件中这么写winb.SetData(r),其中SetData()是在b.asp中定义,用来更新b窗口页面。
解决这个关键的方法是在window.open时关联彼此。示例如下:
a.htm
-----------------------
<html>
<head>
<title></title>
<script>
var winb;
function page_onload(){
winb=window.open("b.htm");
winb.wina=window;
}
function page_onclick(){
winb.SetData(event.clientX);
}
function SetData(r){
document.body.innerText = r;
}
</script>
</head>
<body onload="page_onload()" onclick="page_onclick()">
</body>
</html>
-----------------------
b.htm
-----------------------
<html>
<head>
<title></title>
<script>
var wina;
function page_onclick(){
wina.SetData(event.clientX);
}
function SetData(r){
document.body.innerText = r;
}
</script>
</head>
<body onclick="page_onclick()">
</body>
</html>
-----------------------