Как узнать, находится ли элемент в скрытом фрейме - PullRequest
0 голосов
/ 31 января 2012

Используя jQuery, можно легко узнать, виден ли конкретный элемент, используя

$(element).is(':visible')

Имея некоторые ограничения (не распространяется на скрытую видимость css или реальную видимость в окне просмотра, т. Е. Покрыта ли она другими элементами или выделена), я считаю, что это полезно для моего сценария. Подвох в том, что он работает только в пределах одного iframe.

Если элемент имеет какого-либо родителя в своем документе с display:none;, он возвращает false. Если весь документ включен в iframe с display:none, он возвращает true. Можно ли как-то обнаружить это по-другому?

Ответы [ 3 ]

0 голосов
/ 31 января 2012

невозможно, афаик.iframe - это в основном другой сайт, поэтому он защищен от xss.просто не используйте iframes, но на стороне сервера.

0 голосов
/ 31 января 2012

Похоже, что свойство frameElement окна работает во всех браузерах и доставляет текущий фрейм, в котором содержится окно (если междоменное ограничение не применяется, как в моем случае).

0 голосов
/ 31 января 2012

Хм, похоже, вам нужно вызвать верхний (родительский) документ внутри iframe, затем найти конкретный iframe и проверить, виден ли он.

Возможно, для этого вам понадобится один и тот же домен / поддомен.работать, но в любом случае:

Предположим, вы знаете идентификатор / класс iframe (вы должны это сделать).

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

Невозможно гарантировать правильную работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...