用js动态添加了一个iframe,无法访问iframe页面的方法<急>

用js动态添加了一个iframe,但无法调用iframe页面的方法,提示“对象不支持此属性或方法”,通过iframe的ID能访问iframe的属性。如果不动态创建,用同样... 用js动态添加了一个iframe,但无法调用iframe页面的方法,提示“对象不支持此属性或方法”,通过iframe的ID能访问iframe的属性。如果不动态创建,用同样的方法,又能调用。
function fAddIframe(parent){ //id:html元素iframe的id,parent:父元素对象
var ifrms = null; //已经创建的iframe对象
var ifrm = null; //正在创建的iframe对象
var id = ""; //正在创建的iframe的ID
ifrms = parent.getElementsByTagName("IFRAME");
n = ifrms.length; //已创建的iframe个数
if(n <= 5){ //最多可添加五个
id = "img" + (n + 1);
ifrm = document.createElement("iframe");
ifrm.setAttribute("id",id);
ifrm.setAttribute("src","img.html");
ifrm.setAttribute("width","100");
ifrm.setAttribute("height","120");
ifrm.setAttribute("scrolling","no");
ifrm.setAttribute("frameborder","0",0);
ifrm.setAttribute("name",id);
parent.appendChild(ifrm);
ifrm = fGetHtmlObj(id);
}
return id;
}

function fAddImg(){
var imgs = fGetHtmlObj("imgs");
imgs.className = "iframe2";
var ifrmId = fAddIframe(imgs);
if(ifrmId == "") return;
var ifrm = fGetHtmlObj(ifrmId); window.frames[ifrmId].fSelFl();
}
展开
 我来答
luolm712
2011-05-12 · TA获得超过224个赞
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:160万
展开全部
因为你的iframe是动态创建的,会不会是这个iframe还没创建好或者说iframe里面的方法还没有加载你就调用该方法了?当然,这个也只是我的一个想法,提出来不晓得能不能对你有所帮助,更多的我也想不出了。
klark0093
2011-05-20 · TA获得超过108个赞
知道答主
回答量:137
采纳率:100%
帮助的人:107万
展开全部
前提条件:
1. 同一域名下
2. iframe加载完成

需要setTimeout,检查动态加载的iframe是否已经ready。
或者绑定iframe的load方法,如果load方法被调用了,说明iframe已经ready了。可以调用其中的方法了。 frames['youriframename'].function_name();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lchn_kyd
2011-05-12 · TA获得超过299个赞
知道小有建树答主
回答量:559
采纳率:0%
帮助的人:297万
展开全部
父级不能访问子级ifame里面的方法吧
更多追问追答
追问
能访问吧,window.frames[iframe_id].function_name(),只是不知为什么动态创建的iframe就不能了,提示错误。
追答
对ifame可以绑定方法,但对嵌套页面里就不能操作了吧。否则嵌套几层的话js冲突不乱套了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式