Как определить, загружается ли веб-страница внутри iframe или непосредственно в окне браузера? - PullRequest
518 голосов
/ 28 ноября 2008

Я пишу приложение на основе iframe для Facebook. Теперь я хочу использовать ту же HTML-страницу для рендеринга обычного веб-сайта, а также страницу холста в Facebook. Я хочу знать, могу ли я определить, была ли страница загружена внутри iframe или непосредственно в браузере?

Ответы [ 15 ]

0 голосов
/ 25 июля 2018

Это оказалось самым простым решением для меня.

    <p id="demofsdfsdfs"></p>

<script>

if(window.self !== window.top) {

//run this code if in an iframe
document.getElementById("demofsdfsdfs").innerHTML = "in frame";

}else{

//run code if not in an iframe
document.getElementById("demofsdfsdfs").innerHTML = "no frame";
}

</script>
0 голосов
/ 17 июня 2013

Если вы хотите узнать, имеет ли пользователь доступ к вашему приложению на вкладке страницы facebook или на холсте, проверьте подписанный запрос. Если вы не получили его, вероятно, пользователь не имеет доступа с Facebook. Чтобы удостовериться, подтвердите структуру полей signature_request и содержимое полей.

С помощью php-sdk вы можете получить подписанный запрос следующим образом:

$signed_request = $facebook->getSignedRequest();

Подробнее о подписанном запросе можно прочитать здесь:

https://developers.facebook.com/docs/reference/php/facebook-getSignedRequest/

и здесь:

https://developers.facebook.com/docs/reference/login/signed-request/

0 голосов
/ 08 февраля 2013

Написать этот javascript на каждой странице

if (self == top)
  { window.location = "Home.aspx"; }

Затем он автоматически перенаправляет на домашнюю страницу.

0 голосов
/ 27 октября 2012
if (window.frames.length != parent.frames.length) { page loaded in iframe }

Но только если количество фреймов отличается на вашей странице и странице, которые загружают вас в фрейм. Не используйте iframe на своей странице, чтобы иметь 100% гарантию результата этого кода

0 голосов
/ 25 октября 2011

Это древний кусок кода, который я использовал несколько раз:

if (parent.location.href == self.location.href) {
    window.location.href = 'https://www.facebook.com/pagename?v=app_1357902468';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...