如何确定元素是否在隐藏的iframe中

时间:2012-01-31 08:33:20

标签: javascript jquery html css iframe

使用jQuery,可以使用

轻松找出特定元素是否可见
$(element).is(':visible')

虽然有一些限制(不包括隐藏的css可见性或视口中的实际可见性,即它是否被其他元素覆盖或滚动),我发现它对我的场景很有用。 问题是,它只适用于一个iframe。

如果元素在其文档中具有display:none;的任何父元素,则返回false。如果整个文档包含在具有display:none的iframe中,则返回true。是否有可能以某种方式以另一种方式检测到这一点?

3 个答案:

答案 0 :(得分:0)

嗯,好像你必须在iframe中调用top(父)文档,然后搜索特定的iframe并检查它是否可见。

你可能必须拥有相同的域/子域才能工作,但无论如何:

我们假设你知道iframe id / class(你必须)。

if ($(top).find('#iframeID').is(':visible')) {
  // iframe is visible
} else {
 // iframe is NOT visible
}

不能保证正确的工作。

答案 1 :(得分:0)

似乎窗口的frameElement属性适用于所有浏览器,并提供包含窗口的当前iframe(如果跨域限制不适用,这是我的情况)。

答案 2 :(得分:-1)

不可能是afaik。 iframe基本上是一个不同的网站,因此防范xss。只是不要使用iframe,而是使用服务器端包含。