全局变量是不是就是应该这样定义? <script language="javascript"> var str="1"; </script>
opener.xxx; xxx為父窗變量名!
这个是没有问题的。 但是有一点要注意:不能操作远端的页面。(这个是出于安全考虑)贴下简短代码,供参考:p.htm<script> var msg="this is from the parent window"; function msgB(msg){ alert(msg); } window.open("c.htm"); </script> ----------------------------------------- c.htm<script> if(window.opener) { window.opener.msgB(window.opener.msg); window.opener.msg="and it modify by this window"; window.opener.msgB(window.opener.msg); } else{ alert("window.opener has closed"); }</script>懒得写的话贴下来看看效果。
再给大家一例,看看有什么好玩的现象。(这个例子中的判断可以改为setTimeOut之类的检测手段实现,但是由此也可以看出程序的运行顺序是非常有趣的。)p.htm<script> var msg="this is from the parent window"; var bcalled=false; function msgB(msg){ alert(msg); } var c=window.open("c.htm");//if(bcalled){ c.t.show(); //} </script> ---------------------------- c.htm<script> var t; if(window.opener) { window.opener.msgB(window.opener.msg); //window.opener.msg="and it modify by this window"; //window.opener.msgB(window.opener.msg); t=new Object(); t.str="It called from a object"; t.show=function(){alert(this.str+" and it called from parent!");} window.opener.msgB(t.str); window.opener.bcalled=true; } else{ alert("window.opener has closed"); } </script>
window.opener.函数(xxx,xxx)
我试了,但是不行啊?
<script language="javascript">
var str="1";
</script>
xxx為父窗變量名!
但是有一点要注意:不能操作远端的页面。(这个是出于安全考虑)贴下简短代码,供参考:p.htm<script>
var msg="this is from the parent window";
function msgB(msg){
alert(msg);
}
window.open("c.htm");
</script>
-----------------------------------------
c.htm<script>
if(window.opener)
{
window.opener.msgB(window.opener.msg);
window.opener.msg="and it modify by this window";
window.opener.msgB(window.opener.msg);
}
else{
alert("window.opener has closed");
}</script>懒得写的话贴下来看看效果。
var msg="this is from the parent window";
var bcalled=false;
function msgB(msg){
alert(msg);
}
var c=window.open("c.htm");//if(bcalled){
c.t.show();
//}
</script>
----------------------------
c.htm<script>
var t;
if(window.opener)
{
window.opener.msgB(window.opener.msg);
//window.opener.msg="and it modify by this window";
//window.opener.msgB(window.opener.msg);
t=new Object();
t.str="It called from a object";
t.show=function(){alert(this.str+" and it called from parent!");}
window.opener.msgB(t.str);
window.opener.bcalled=true; }
else{
alert("window.opener has closed");
}
</script>