很难的问题。。。两个帧,其中一个帧(A)要对另外一个帧(B)的TEXT框写值,问题是如果B还没Loading完,就会报一个错,对象不存在,

netos 2002-12-13 05:21:04
很难的问题。。。两个帧,其中一个帧(A)要对另外一个帧(B)的TEXT框写值,问题是如果B还没Loading完,就会报一个错,对象不存在,
如何解决这个问题:
if (typeof(top.C.B) != undefined)
{
top.C.B.form.text.value = "...";
}
这样的话,问题依然存在,请大家帮忙。
...全文
28 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pjisfeng 2002-12-15
  • 打赏
  • 举报
回复
我也有同样问题,借楼主地盘一用,分数可以另开贴给。
我的问题基本和楼主的一样,只不过多了一点,就是无论怎么样都要把值赋到B帧的text框里。我的意思当出现错误后,能不能做一个延时,再重复帧(A)要对另外一个帧(B)的TEXT框写值。
江南昆虫 2002-12-14
  • 打赏
  • 举报
回复
上面的方法是当文本框已下载就写入数据,如果非要完全下载,可以这样

<script language=javascript>
function change(){
(top.C.B.document.readyState=='complete')?top.C.B.form.text.value='123456':setTimeout("change()",1000);
}
change();
</script>

这里的readyState=='complete'就相当于B的onload。
江南昆虫 2002-12-14
  • 打赏
  • 举报
回复
bencalie(Bencalie)的方法中如果B下载了,而A没有下载同样会报错的!


我的方法只要把以下代码加入A,而B不需要改动。
<script language=javascript>
function change(){
if (top.C.B.form){
if (top.C.B.form.text){
top.C.B.form.text.value='123456';
} else{
setTimeout("change()",100);
}
} else{
setTimeout("change()",100);
}
}
change();
</script>



如果给B的TEXT框取个ID如:thetext,就可以使程序简化一点。

<script language=javascript>
function change(){
(top.C.B.document.all['thetext'])?top.C.B.document.all['thetext'].value='123456':setTimeout("change()",100);
}
change();
</script>
netos 2002-12-13
  • 打赏
  • 举报
回复
up
希默软件 2002-12-13
  • 打赏
  • 举报
回复
帧A的处理函数
<script>
var framebLoaded=false;
function change(){
if(framebLoaded==true){
top.C.B.form.text.value = "...";
}
else {
setTimeout("change()",1000);
}
}
change();
</script>

帧B:
<body onload="parent.leftFrame.framebLoaded=true">
netos 2002-12-13
  • 打赏
  • 举报
回复
在帧A的处理函数中,只要有这个
top.C.B.form.text.value = "...";
就会报错,即使你的
if (3>5)
{
top.C.B.form.text.value = "...";

}
希默软件 2002-12-13
  • 打赏
  • 举报
回复
这样好了,在帧(A)的处理函数设置一个if条件判断,默认该条件判断是false;然后帧(B)的onload事件中改变该条件判断为true

87,996

社区成员

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

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