【问题标题】:Select iframe parent of an element in iframe, doing outside the iframe在 iframe 中选择元素的 iframe 父级,在 iframe 之外执行
【发布时间】:2014-07-18 17:24:20
【问题描述】:

我有这个 html 页面:

<div> this is the outside page </div>
<iframe id="ifr">
    (#document node)
        <html>
            <p> a node within iframe </p>
        </html>
</iframe>

外部页面加载js。如何通过在 iframe 中使用 &lt;p&gt; 元素来选择 &lt;iframe&gt; 对象?

大多数网络资源都致力于“从inside iframe 中选择父元素”(使用window.parent)。他们的 js 在 iframe 中加载。同样,我在外面运行脚本。

我已经成功获得#document 节点 -

$(clicked_object).parents('html').parent()

clicked_object 表示我点击了 iframe 内的&lt;p&gt; 标签。 这给出了 iframe 页面的#document 节点,没有任何问题。 但是如果我写

$(clicked_object).parents('html').parent().parent()

它给出[]

其他文献教导如何从父页面中通过 id(例如$('iframe#ifr'))选择&lt;iframe&gt; 元素。但通过这种方式,我无法获得内嵌元素的 parent


因此,一种可能的方法是向&lt;p&gt; 元素添加onclick 属性,调用父侦听器函数,并将某些内容(如#document 节点)作为参数传递;然后查看与特定#document 匹配的所有&lt;iframe&gt; 元素。

【问题讨论】:

  • 尝试窗口。 - 对于 iframe 内容,window 是 iframe,parent 是主页面的窗口
  • @mplungjan 我在外部页面运行 js,所以window 给出了主页的窗口。
  • 嘿伊冯,我正在尝试做同样的事情。如果你能解决这个问题,你能提供答案吗
  • @Ashfaqnisar 稍后再回复您。这篇文章是很多年前的事了,我不记得当时发生了什么。似乎我没有找到任何解决方案。但过去几年情况可能发生了变化。
  • 哦,知道了@Yvon,那太好了

标签: javascript jquery html iframe


【解决方案1】:

如果你使用 javascript,你可以使用它(假设你使用了 onclick 或 addeventlistener:

function something(clicked)
{
    var ifrparent = clicked.parentNode.parentNode;
}

编辑: 如果 p 标签在 iframe 的 src 中,那么在你的 onclick 函数中,你会使用

var ifrparent = window.frameElement.parentNode;

这应该返回 iframe 父级

【讨论】:

  • 哦,等待文档中的 p 是 iframe 的来源吗?
  • 不太清楚你的意思,但p 是从另一个 html 源加载的,并且该页面作为 iframe 在主页中加载。
  • window.frameElement 又给null....因为我是在主页面运行js,所以window 会一直选择主页面。
  • 哦,js在主页上。那么你有什么特别的理由想要来自源头吗?为什么不直接通过 id 获取 iframe?
  • 我们可以在这里聊天@Yvon
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-08
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
相关资源
最近更新 更多