Я хотел бы проверить, включена ли моя страница (php) в iframe или нет, чтобы реализовать другое поведение. Любая идея, как проверить это. Я также использую jQuery, если это помогает.
Дополнение: меня особенно интересует, если бы был способ проверить это на сервере, а не на клиенте с Javascript
Вы можете использовать JavaScript, я думаю, что что-то вроде следующего должно работать:
if (top != self) { // you're in an iframe, or similar. }
Ссылка на оригинал, мейервеб, статья .
Дополнение : меня особенно интересует, если бы был способ проверить это на сервере, а не на клиенте с Javascript
Это не может быть «проверено» на стороне сервера, но вы можете использовать заголовок X-Frame-Options
, есть два варианта:
DENY
: предотвращает DENY
кадра в любом месте (при условии, что браузер поддерживает заголовок X-Frame-Options), или SAMEORIGIN
: позволяет создавать ресурс только на страницах из одного домена, подобно политике JavaScript с одинаковым SAMEORIGIN
. Чтобы использовать это, вам нужно настроить сервер для отправки соответствующего заголовка; хотя конкретные рекомендации для этого нельзя дать, не зная, на каком сервере вы работаете; хотя связанная статья в Центре разработчиков Mozilla показывает параметр Apache.
может быть:
var isInIFrame = (window.location != window.parent.location) ? true : false;
Я не знаю, есть ли конкретный JQueryway, но в ванильном javascript вы можете просто;
if (top != self) alert("framed!")
<script language="JavaScript" type="text/javascript"> function InFrame() { if (top.location != location) { //Do whatever you need- your site is in an iframe. //This will redirect to your site if you need to //top.location.href = document.location.href ; // } } </script>