2013-12-11 2 views
1

Я разрабатываю «скрипт контента» расширения Chrome. Он должен активировать некоторые функции javascript, если страница загружена в <FRAME>, но нет в <IFRAME>.Как идентифицировать веб-страницу загружается внутри IFRAME или FRAME

Я знаю, что я могу проверить window.frameElement по

var inIFrame = (window.frameElement.tagName=='IFRAME')

Но это не удалось, если ребенок кадр не в том же домене с родительским фреймом. Он выдает предупреждение о междоменной безопасности. Как дочерний кадр знает, что он находится в IFRAME или FRAME, не нарушая политику безопасности?

+0

Возможный дубликат [Как определить, загружается ли веб-страница внутри iframe или непосредственно в окне браузера?] (Http://stackoverflow.com/questions/326069/how-to-identify-if-a- webpage-is-being-loaded-inside-an-iframe-or-direct-into-t) –

+0

@Niels, это не дублирование. Моя точка зрения заключается в том, какой фрейм, IFRAME или FRAME. –

+0

Ах, это было не совсем ясно. Тогда я наберу ответ. –

ответ

1

Нет, это невозможно определить. Детский документ не может пересекать границы безопасности, и если домен отличается, и никаких других разрешений CORS не существует, его «видимый мир» ограничивается областью собственного документа, то есть его собственным окном. Невозможно смотреть за рамки этого в область родительского документа и определять тип содержащего элемента. Это приведет к раскрытию всего объекта и его атрибутов, включая все потенциальные эксплоиты этих знаний.

Смежные вопросы