高手请进:FRAME中DOCUMENT子对象的引用

Bluce4587 2004-04-22 12:12:09
各位大虾,帮帮小弟呀:
在名为 mainFrame 的 Frame 中:
<script language="javascript">
document.write( "<table id=tabMenu ><tr><td>OK</td></tr></table>");
</script>

可以通过 top.mainFrame.document.all.tabMenu 调用时,却老是报告:
错误: top.mainFrame.document.all.tabMenu 为空或不是对象

求怎样找到 tabMenu 并引用它???

...全文
118 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kidkiss 2004-04-23
  • 打赏
  • 举报
回复
我是刚来csdn的,那个分数是干什么用的,我很少(175),能不能给一点,谢谢。
top.frames("mainFrame").document.all.tabMenu

窗口与窗口之间的相互访问 整理者:kidkiss(fan-fan) 2003.09


一,主框架和内部框架之间的访问(假设在一个主框架中有两个内部框架 iframe01 和 iframe02)

(一).内部框架与内部框架间的访问

window.parent.frames("内部框架名").对象.属性 = 参数

实例:
iframe01改变iframe02中页面表单值可以用以下代码实现
window.parent.frames("iframe02").document.form01.input01.value = "value01"

(二).主框架与内部框架间的访问

1.主框架访问内部框架

window.frames("帧名").对象.属性 = 参数

实例:
主框架改变iframe02中页面表单值可以用以下代码实现
window.frames("iframe02").document.form01.input01.value = "value01"


2.内部框架访问主框架

window.parent.对象.属性 = 参数

实例:
iframe02改变主框架中页面表单值可以用以下代码实现
window.parent.document.form01.input01.value = "value01"


二,父窗口和子窗口之间的访问


(一).子窗口访问父窗口

在新打开的窗口中用
window.opener.对象.属性 = 参数
可以访问父窗口的对象

实例:
子窗口改变父窗口中页面表单值可以用以下代码实现
window.opener.document.form01.input01.value = "value01"

(二).父窗口访问子窗口

子窗口名=open("子窗口页面","指定框架名","窗口参数")
子窗口名.对象.属性 = 参数

实例:
父窗口改变子窗口new_win中页面表单值可以用以下代码实现
new_win=open("page01.asp","target01","")
new_win.document.form01.input01.value = "value01"

三,多层关系窗口之间的访问

(一).访问最顶层窗口

window.top.对象.属性=参数

(二).访问上一层窗口

window.parent.对象.属性=参数

(三).访问某一层的窗口

1.采用绝对路径访问
window.top.[frames("次层框架名").[frames("次次层框架名")]...].对象.属性=参数
注:[]中内容为可选内容
补充:除了用frames("框架")指定某个框架外,还可以用frames[数值]指定框架
实例:为第三层内部框架中的表单赋值可以用以下代码实现
window.top.frames("frame01").frames("frame01_01").frames("frame01_01_01").document.form.name.value="测试多层关系窗口之间的访问"

2.采用相对路径访问
window.[parent.[parent]...].frames("某一层的框架名").对象.属性=参数
注:[]中内容为可选内容
实例:为上两层的第一个内部框架中的表单赋值可以用以下代码实现
window.top.parent.parent.frames[0].document.form.name.value="测试多层关系窗口之间的访问"

wanghr100 2004-04-23
  • 打赏
  • 举报
回复
楼主,我写得很清楚啊.
这样就能引用了.
top.mainFrame.document.getElementById('tabMenu')
wanghr100 2004-04-22
  • 打赏
  • 举报
回复
demo.htm

<frameset cols="92,*" id="baobao">
<frame src="left.htm" name="leftFrame" scrolling="NO" >
<frame src="main.htm" name="mainFrame">
</frameset>


left.htm

<input type=button onclick="alert(top.mainFrame.document.getElementById('tabMenu').innerHTML)" value="Get">

main.htm

<script language="javascript">
document.write( "<table id=tabMenu ><tr><td>OK</td></tr></table>");
</script>
nameabc 2004-04-22
  • 打赏
  • 举报
回复
在浏览器中实现打印,套打、报表、图型的完美解决方案. 参见http://www.fcsoft.com.cn
Bluce4587 2004-04-22
  • 打赏
  • 举报
回复
是在 mainFrame 中
var sHTML="<table id=tabMenu ><tr><td>OK</td></tr></table>";
document.write( sHTML );
bflovesnow 2004-04-22
  • 打赏
  • 举报
回复
你是直接在mainFrame中写的?不是在mainFrame的src中写的??

var sHTML="<table id=tabMenu ><tr><td>OK</td></tr></table>"

document.body.insertAdjacentHTML("beforeEnd",sHTML);
Bluce4587 2004-04-22
  • 打赏
  • 举报
回复
请楼上的大虾说的再细一些,可能在什么地方出错?
ops2000 2004-04-22
  • 打赏
  • 举报
回复
你的调用没有问题,其他地方有问题
Bluce4587 2004-04-22
  • 打赏
  • 举报
回复
在名为 mainFrame 的 Frame 中的调用语句如下:
<script src=js/x.js></script>

在x.js文件中的语句如下:
document.write("<table id=tabMenu><tr><td>OK</td></tr></table>");

通过 top.mainFrame.document.all.tabMenu 调用 tabMenu 时,却老是报告:
错误: top.mainFrame.document.all.tabMenu 为空或不是对象

87,910

社区成员

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

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