【问题标题】:Check if element is visible within IFRAME [duplicate]检查元素在 IFRAME 中是否可见 [重复]
【发布时间】:2015-09-17 11:54:11
【问题描述】:

我收到了一个关于检查 iframe 中是否可见对象的问题。这甚至可能吗?所以情况是我从 IFRAME 外部检查一个对象是否在 Iframe 中可见。

这与解决方案 [这里] (Determine if an element in an iframe is visible on the screen) 的情况不同,因为我无法修改 IFRAME,因此我无法使用他们的解决方案

HTML 代码

<iframe src="http://www.w3schools.com">
  <p>Your browser does not support iframes.</p>
</iframe>

JS 代码

var check = $('.w3-container top').is(":visible"); 
alert(check);

警报将始终给出值“false”。

JSFIDDLE (在 Firefox 中观看,否则 iframe 不起作用)

【问题讨论】:

  • “这可能吗?”。仅当 iframe 来自同一个域时,否则同源策略不允许这样做。
  • @D4V1D 不,这不是重复的,因为我无法修改 iframe html 代码。看看我更新的问题。
  • @Vohuman 我知道,我想在本地使用它,但我无法真正提供本地内容的 JSFIDDLE;)

标签: javascript jquery iframe


【解决方案1】:

首先,您应该等到 iframe 通过 load 事件加载。但是,它不会以这种方式工作,您与 www.w3schools.com 位于不同的域,因此您将无法访问子 iframe DOM 模型。

【讨论】:

  • 我编辑了你的 jsfiddle here,你会看到你的选择器没有选择任何东西,这就是为什么你总是看到 false。
  • 是的,我知道 ;) 但是,如果我在 iframe 指向的同一域中加载页面,它会起作用吗?
  • 在同一个域中,您可以访问子窗口及其属性,也可以从子窗口访问父窗口属性。
猜你喜欢
  • 2014-01-14
  • 2011-07-18
  • 2013-11-09
  • 2022-01-07
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 2017-01-01
相关资源
最近更新 更多