用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();
} 展开
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();
} 展开
3个回答
展开全部
前提条件:
1. 同一域名下
2. iframe加载完成
需要setTimeout,检查动态加载的iframe是否已经ready。
或者绑定iframe的load方法,如果load方法被调用了,说明iframe已经ready了。可以调用其中的方法了。 frames['youriframename'].function_name();
1. 同一域名下
2. iframe加载完成
需要setTimeout,检查动态加载的iframe是否已经ready。
或者绑定iframe的load方法,如果load方法被调用了,说明iframe已经ready了。可以调用其中的方法了。 frames['youriframename'].function_name();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
父级不能访问子级ifame里面的方法吧
更多追问追答
追问
能访问吧,window.frames[iframe_id].function_name(),只是不知为什么动态创建的iframe就不能了,提示错误。
追答
对ifame可以绑定方法,但对嵌套页面里就不能操作了吧。否则嵌套几层的话js冲突不乱套了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询