有没有办法从其中的元素访问iframe外的Dom?

时间:2016-02-04 17:34:42

标签: javascript jquery html dom iframe

The image attached shows DOM structure for the problem statement

我们有办法通过iframe遍历DOM到#btn1 我们可以通过`btnElement.closest('iframe')`

执行此操作

我正在努力遍历从#btn1向外移动DOM#iframe2

以下代码给我[]。考虑将btnElement设为jquery #btn object

btnElement.parent().parent().parent()

这也不起作用

ggplot2

有没有办法从btn1 ??

访问iframe2之外的Dom

注意:所有iframe都属于同一个来源。我不关心交叉起源

1 个答案:

答案 0 :(得分:4)

你不能遍历,不; DOM jQuery的工作原理是植根于iframe的窗口。

但是该窗口对象具有<dependency> <groupId>javax.cache</groupId> <artifactId>cache-api</artifactId> <version>1.0.0</version> </dependency> 属性,该属性引用父窗口。因此,您可以使用它来访问父窗口中的内容。

如果父窗口也加载了jQuery,您可以像下面这样使用它:parent

如果父窗口没有加载jQuery但是iframe没有加载,你通常可以在父窗口中查找:parent.$("selector"),但jQuery的其他用法可能是松散的,如果可能的话,最好使用从加载它的窗口中获取jQuery的实例。

(只有在相同来源加载框架及其父框架时才能执行此操作。)

重新评论:

  

只有给我的东西是。 btn1的jquery对象。我怎样才能找到它的父iframe元素。 ?

     

我想访问此iframe之外的DOM我想知道当前iframe的父div

我不相信有任何直接的方法可以做到这一点,不,你必须寻找:jQuery对象中的按钮元素(例如,$(parent.document).find("selector"))有一个名为btn1[0]的属性,将是ownerDocument。 iframe元素具有=== (theWindowThatContainsIt).document属性,该属性引用相同的内容。因此,您使用contentDocument获取父窗口,然后查找其中的所有parent,并选择具有iframe的那个:

.contentDocument === btn[0].ownerDocument