window.opener.
不过这个时候这个窗口已经被销毁或者是关闭了。
具体的IE和FF下处理是不一样的。
你可以这样判断一下。
if (window.opener && !window.opener.closed) {
......
}
不过这个时候这个窗口已经被销毁或者是关闭了。
具体的IE和FF下处理是不一样的。
你可以这样判断一下。
if (window.opener && !window.opener.closed) {
......
}
比如购物车。所以这个处理也是比较常用到的。
我这里给出一个小例子供参考。test1.html<html>
<head>
<title>test1</title>
</head>
<script>
function openit(){
window.open("./test2.html", null, "width=300,height=400");
}
</script>
<body>
<input type="button" value="open" onclick="openit()">
<a href="./test3.html">test3</a>
</body>
</html>test2.html<html>
<head>
<title>test2</title>
<script>
function msgit(){
try{
alert(opener);
alert(opener.closed );
alert(opener==undefined);
alert(opener.document==undefined);
} catch(er){
alert( "error" );
}
}
</script>
</head>
<body>
HI test2
<input type="button" value="opener" onclick="msgit()"
</body>
</html>test3.html<html>
<head>
<title>test3</title>
</head>
<script>
function testCatch(){
try{
alert(opener);
alert(opener.closed );
alert(opener==undefined);
alert(opener.document==undefined);
} catch(er){
alert( "error" );
}
}
</script>
<body>
HI
<br/>
<input type="button" value="Catch It" onclick="testCatch()">
</body>
</html>
或者是窗口的document对象已经被销毁了,
画面内部的对象当然是访问不了的了。
可以用AJAX SESSION COOKIE变相做到 不过还不如用提交的方式传过来呢
由于函数是引用类型所以也不好复制给子窗口可以把函数先转为字符串,然后 eval
这样,不过挺勉强的哈~~~<input type="button" onclick="c()" value="关闭" />
<script>
function par(){
alert('父窗口函数');
}
function c(){
var w = window.open('_blank');
with(w.document){
open();
writeln("<script>");
writeln("var fnstr ='fn=' + opener.par.toString();");
writeln("eval(fnstr)");
writeln("<\/script>");
writeln("<input type=\"button\" onclick=\"fn()\" value=\"调用父页函数\" />");
close();
}
window.close();
}
</script>