Как понять, загружается ли страница как iframe (внешний сайт) с использованием javascript? - PullRequest
1 голос
/ 15 ноября 2010

Я пытаюсь найти надежное решение, чтобы определить, была ли моя страница загружена в iframe на внешний сайт с использованием javascript.

Если iframe src находится в том же домене, это довольно просто: вы можете использовать if (window.frameElement) или if (window.location! == window.parent.location), но если iframe src не находится в одном домене, все современные браузеры выдают исключение при доступе к родительскому элементу и даже сравнивают его с нулем.

Я полностью потерян.

Ответы [ 3 ]

2 голосов
/ 15 ноября 2010

Возможно, вас заинтересует запись «Кодовый ужас»: We Done Bera Framed . Предлагает интересную техническую дискуссию на эту тему, включая решения и разбор кадров.

0 голосов
/ 15 ноября 2010

Почему бы вам не попробовать функцию со следующим

var element = window.parent.document if (element) return "находится в родительском окне", иначе "не находится в родительском окне";

0 голосов
/ 15 ноября 2010

Вы можете заключить свою проверку (window.location! == window.parent.location / window.frameElement) в оператор try-catch, который вы можете использовать для обработки исключения самостоятельно.

...