如何在子页面得到其所在的iframe

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在子页面得到其所在的iframe相关的知识,希望对你有一定的参考价值。

问题一:
parent.html
child1.html child2.html .... childN.html

parent页面中有多个iframe(动态生成的) ,iframe的内容为child页面,如何在不知道iframe的name和id的情况下在child页面中得到其所在的iframe 对象

我的想法是 在iframe的src赋值时根据时间创造一个key 附加在src之后 且把该key放在iframe的属性或id中 子页面根据url中key来取iframe

问题二:
在父页面中有一个方法
该父页面有两个子页面
均通过parent.func的方式调用父页面的方法 在不修改页面的前提下 如何修改该方法使其能得到调用他的子页面对象

提前先谢谢各位

1、首先需要在body中增加一个iframe,可以给这个标签设置宽高,还可以设置位置。

2、然后在前台界面的某个位置,增加一个点击事件onclick。

3、然后点击事件,总要对应的设置一个事件方法。

4、然后在方法内增加iframe的重载url,重新给src赋值。

5、最后运行html界面,点击前台的按钮,触发刷新iframe的方法,就完成了。

参考技术A 问题一太简单了。。。
A页面:
<iframe name="iframe1" src="b.htm" ></iframe>
B.htm里面:
<input type="button" value="点击" onclick="alert(window.name)" />
//
window.name就是iframe1,然后用parent.document.getElementsByName("iframe1")[0]来获取这个iframe吧。
或者,用对比法:
var pfs=parent.frames;
for(var i=0;i<pfs.length;i++)

if(pfs[i]==window)

alert(i);

本回答被提问者和网友采纳
参考技术B 问题一,用jQuery
var url = location.href;
var ifr = jQuery('iframe[src=' + url+ ']',jQuery(parent.document));

问题二:
func方法增加一个参数,传入上述ifr对象追问

当子页面跳转时,iframe的src属性并不改变,所以这时用你的方法会取不到的
ps:你的语法错了吧

追答

当子页面跳转时,src当然会改变的。

追问

我是说在子页面里面做的操作引起的跳转,比如在子页面里写 location.href="xx" 或者在子页面通过普通的超链接进行跳转....这些都不会引起父级页面中iframe对象的src属性的更改 src修改会引起页面的跳转 但页面的跳转并不能引起src的更改..

追答

子页面的跳转当然会引起子页面所在的iframe 的src变化的

追问

虽然你回答我很感谢你,但是拜托你试一下再回答好吧

参考技术C Js代码
1.//根据iframe的id获取对象
2.var i1 = window.frames['iframeId'];
3.//var iframe =window.frames[0];也可以
4.//获取iframe中的元素值
5.var val=i1.document.getElementById("t1").value
//根据iframe的id获取对象
var i1 = window.frames['iframeId'];
//var iframe =window.frames[0];也可以
//获取iframe中的元素值
var val=i1.document.getElementById("t1").value

以上是关于如何在子页面得到其所在的iframe的主要内容,如果未能解决你的问题,请参考以下文章

急:js 如何在子页面触发父页面的某个按钮

在子jsp页面中调用父jsp中的function或父jsp调用子页面中的function

关于iframe里的子页面如何调取父级页面里的事件(子调父)

子iframe 怎么访问 父的 iframe方法

JS关闭父iframe窗口

关于iframe