如何在父窗口调用子窗口的javascript方法?

shihb 2003-06-09 11:29:28
在子窗口的javascript中,只要用window.opener.methodname就可以调用父窗口中的javascript方法,那么如何在父窗口中调用子窗口的javascript方法呢?
...全文
528 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
shihb 2003-06-10
  • 打赏
  • 举报
回复
我昨天也想到可能是因为窗口没有打开,因为如果在调用方法以前先alert一下,就可以调用成功。谢谢seabell(百合心)的解答,不过我认为你的check没有真正的是使用上,是不是应该把check=setTimeout(ifload,2000);放在一个while循环中?不过非常感谢你的帮助。
shihb 2003-06-09
  • 打赏
  • 举报
回复
这样不行,因为你用var sub = window.open()后,这时用sub.methodname时,系统好像只会在window的javascript方法中找,然后报个错,说window没有这个method。让人很是郁闷!
seabell 2003-06-09
  • 打赏
  • 举报
回复
sub=window.open("","","");
sub.functionname();
seabell 2003-06-09
  • 打赏
  • 举报
回复
<script>
check=null;
sub=null;
function ifload()
{
try
{sub.functionname();
clearTimeout(check);
window.status="done";
}
catch(e)
{
window.status="waiting";
}
}
sub=window.open("sub.htm","","");
check=setTimeout(ifload,2000);
</script>
shihb 2003-06-09
  • 打赏
  • 举报
回复
谢谢关注。可是我突然发现是在appServer中,这种调用方式是会出现我说到的错误,可是如果不用server,是不会出这种错误的。
to wssgwps(小刀会):
你把这两个文件拷到例如tomcat的webapp中,用http://servername/../*.html的方式试一试就可以看出来了。
期待大家的帮助。
wssgwps 2003-06-09
  • 打赏
  • 举报
回复
parent.htm:
<html>
<head>
<script language=javascript>
var newWin;
function mm()
{
newWin=window.open("child.htm","","width=200,height=150");
}
function nn()
{
newWin.f1();
}
</script>
</head>

<body>
<input type=button value="open" onclick="mm()">
<input type=button value="调用2.htm中的函数f1" onclick="nn()">
</body>
</html>

child.htm:
<html>
<head>
<script language=javascript>
function f1()
{
alert("这是2.htm中的alert!!");
}
</script>
</head>
<body>
<input type=button value="Execute" onclick="f1()">
</body>
</html>

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧