gogowq
@gogowq
Ozh domosh acha ozh

Проверить открыта ли страница в iframe и выполнить php код?

Есть :
get_header()
get_customheader()
Как мне вывести get_customheader() если эта страница открыта в iframe,а если нет,то вывести get_header()
И второй вопрос тут же,может это глобально можно cделать как то функцией например. Чтоб я не писал условие в каждой странице где хотел бы это использовать,а использовал какую то функцию чтоб это всё переопределить глобально
  • Вопрос задан
  • 518 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Только на фронте можно попробовать узнать, в iFrame'ли мы:
let isInIframe;
try {
  isInIframe = window.self !== window.top;
} catch (e) {
  isInIframe = true;
}

if (isInIframe) {
  // мы в айфрейме
}
Дальше можно запрашивать, например, основной контент страницы, добавив параметры к запросу https://example.com/page.php?iframe=1

Ещё усложнить: если простой GET запрос, отдавать заглушку с JS кодом, который определит, в айфрейме или нет; создаст невидимую форму и отправит её POST'ом на этот же URL с параметром isInIframe. В ответ на такой POST запрос уже бэк отдаст нормальную страницу с теми или иными заголовками. Но это плохо для SEO: не все роботы станут выполнять JS и отправлять форму ради контента.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы