Javascript 如何确定元素是否位于隐藏的iframe中

Javascript 如何确定元素是否位于隐藏的iframe中,javascript,jquery,html,css,iframe,Javascript,Jquery,Html,Css,Iframe,使用jQuery,您可以很容易地通过使用 $(element).is(':visible') 虽然有一些限制(不包括隐藏的css可见性或视口中的实际可见性,即是否被其他元素覆盖或滚动),但我发现它对我的场景很有用问题是,它只能在一个iframe内工作。 如果元素在其文档中有父元素,则显示为:无,则返回false。如果整个文档包含在具有显示:none的iframe中,则返回true。是否有可能以另一种方式检测到这种情况?嗯,似乎您必须调用iframe中的top(父)文档,然后搜索特定的ifram

使用jQuery,您可以很容易地通过使用

$(element).is(':visible')
虽然有一些限制(不包括隐藏的css可见性或视口中的实际可见性,即是否被其他元素覆盖或滚动),但我发现它对我的场景很有用问题是,它只能在一个iframe内工作。


如果元素在其文档中有父元素,则显示为:无,则返回false。如果整个文档包含在具有
显示:none
的iframe中,则返回true。是否有可能以另一种方式检测到这种情况?

嗯,似乎您必须调用iframe中的top(父)文档,然后搜索特定的iframe并检查它是否可见

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

假设您知道iframe id/class(您必须知道)


无法保证正确工作。

目前不可能。iframe基本上是一个不同的站点,因此可以防范xss。只需不使用iframe,而使用服务器端包含。

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

iframe只有来自不同(子)的iframe才“防范XSS”域,并且父文档和iframe都不调整要匹配的域的
document.domain
(请注意,您只能在其父域的子域之间执行此操作,例如
foo.example.com
bar.example.com
都可以将其设置为
example.com
,然后可以进行通信)。
if ($(top).find('#iframeID').is(':visible')) {
  // iframe is visible
} else {
 // iframe is NOT visible
}