JavaScript window.parent — батьківське вікно iframe
Властивість parent повертає батьківське вікно — те, що вміщує цей iframe.
Загальний опис
Якщо сторінка відкрита сама по собі, parent дорівнює самому window. Саме на цьому будується найкоротша перевірка «чи я в рамці»: window !== window.parent.
І це важливо не лише з цікавості: клікджекінг — атака, коли зловмисник відкриває твій сайт у прозорому iframe поверх свого й ловить кліки користувача. Перевірка допомагає її помітити (хоч надійно захищає лише заголовок X-Frame-Options із боку сервера).
Дістатись до вмісту батька з іншого домену не можна — лише надіслати йому повідомлення через postMessage().
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| parent | 1+ | 1+ | 1+ | 3+ | 12+ | 5+ |
| Переглядач | ||||
|---|---|---|---|---|
| parent | yes | yes | yes | yes |
Приклади
+ запропонувати свій приклад у пісочниці
Перевірка, чи сторінку не відкрито в чужій рамці.
// найкоротша перевірка «я в iframe?»
if (window !== window.parent) {
console.warn('Сторінку відкрито в рамці');
}
// до вмісту чужого батька доступу немає — лише повідомлення
window.parent.postMessage({ type: 'ready' }, 'https://example.com');
// найвище вікно в ланцюжку рамок
console.log(window.top === window.parent);
Коментарі
Коментарів ще немає — будьте першим!