Using jQuery, one can easily find out whether a particular element is visible using
$(element).is(':visible')
While having some limitations (doesn't cover css visibility hidden or the actual visibility in the viewport, i.e. whether it's covered by other elements or scrolled away), I find it being useful for my scenario. The catch is, it only works within one iframe.
If the element has any parent within its document with display:none;
, it returns false. If the whole document is included in an iframe which has display:none
, it returns true. Is it possible to somehow detect this in another way ?
Hmm, seems like you have to call top (parent) document within an iframe, then search for specific iframe and check if it's visible.
ReplyDeleteYou'll probably have to have same domain/subdomain for this to work, but anyway:
Let's assume you know iframe id/class (you have to).
if ($(top).find('#iframeID').is(':visible')) {
// iframe is visible
} else {
// iframe is NOT visible
}
Can't guarantee correct work.
Seems that the window's frameElement property works in all browsers and delivers the current iframe where the window is contained (if cross-domain restriction doesn't apply, which was my case).
ReplyDeletenot possible afaik. an iframe is basically a different site and as such guarded against xss. simply don't use iframes but server-side includes.
ReplyDelete