2.3.7. Фрейми в кна

При роботі з фреймами і в ікнамив попередніх версіях JavaScript постійно приходилося в дсл дковувати посл довн сть в дкриття в кон фрейм в, для того, щоб акуратно їх пот м закривати. На деяких неточностях роботи звікнами були засновані так називані mail-bombs. Суть цих "подарунк в" полягала вт м, що якщо користувач поштою приймає документ, що складається т льки зодн єїкоманди:

window.close()

те система не запитуючи користувача закривала поточне в кно, ав цей момент таким в кном єв кно електронної пошти. Тепер, перед тим як що-небудь закрити, система буде запитувати дозволу. Правда, знову не завжди. Якщо вмоментодержання команди на закриття в кна на екран т льки одне в кно Navgator, то система його закриє без яких-небудь коментар в.

Однак, робота зв кнами  фреймами на цьому не вичерпується. По-перше, у систему введена нова властив ість opener, що визначена для поточного чи в ікна фрейму, і методи blur і focus поширені на роботу зв ікнами. Властив ість opener визначає в ікно документа, що викликав в ідкриття в ікна поточного документа. Властив ість визначена для будь-якого в ікна і фрейму. Необхідно виконати деяк функц ї стосовно в кна, що в дкрили дане в кно,  можнавикористовувати вираження типу:

window. op ener. [method]

Наприклад, якщо потрібно закрити в ікно-попередник, те можна просто виконати метод close:

window.op ener.close()

Точно таким же способом можна змінити зміст цього в ікна за допомогою методів write чи writeln. Можна змінювати й і нші властивості об'єктів увікні попереднику. Наступний приклад узятий з доповнень до специфікаці'ї JavaScript:

window. op ener. document.bgColor='cy an'

Уданому випадку для в кна попередника визначений св тло блакитний кол р як кол р тла. Але самим чудової єте, що попередника можна зм нювати. Це значить, що автор одержує можлив сть в ідкривати і закривати в ікна не строго ієраричної послідовності, ав дов ільному порядку. Керування багатов конним нтерфейсом уцьому випадку стає б льш гнучким:

window.opener= newwindow window.opener = null

Перший приклад перепризначує для поточного в ікна в ікно-попередник, утой час як другий узагалі захищає попередника в д яких-небудь д й. Усе, що було сказано про в кна, поширюється на фрейми, що єпросто часткою случаємо в кна. При робот з фреймами часто фрейм може бути породжений шляхом розбивки іншого фрейму на частин і. Якщо при цьому буде потрібно звернутися до в ікна-попередника фрейму -попередника, то властив ість opener уцьому випадку незамінна. Розроблювачі мови випливають за побажаннями авторів Websit'ов і практикою застосування JavaScrip, що на початков ій стадії розробки мови не була настільки очевидною. Крім звертання до різних властивостей в ікон і фреймів розроблювачі розширили дію методів blur і focus із фреймів до в ікон. Тепер не тільки фрейм, але і вікно може бути зроблено поточному з використанням методу focus чи, навпаки, переведено втлоза допомогою методу blur. Уряд випадків, при породженні декількох сторінок, наприклад, звертання до цих функцій буває досить кор исним.