Урок 3 1






В результаті будуть створені два фрейми. Ви можете помітити, що у фреймі ми використовуємо властивість rows. Це означає, два наших фрейму будуть розташовані один над одним. У верхній фрейм буде завантажена HTML-сторінка page1.htm, а в нижньому фреймі розміститься документ page2.htm. Остаточно створена структура фреймів буде виглядати наступним чином:

Ви можете задати товщину кордону між фреймами, скориставшись в тезі параметром border. Запис border = 0 означає, що Ви не хочете, щоб між тегами була якась межа (в Netscape 2. x такий механізм не працює).

У вершині ієрархії знаходиться вікно браузера (browser window). В даному випадку він розбите на два фрейми. Таким чином, вікно, як об'єкт, є родоначальником, батьком даної ієрархії (parent), а два фрейми - відповідно, його нащадки (children). Ми присвоїли цим двом фреймам унікальні імена - frame1 і frame2. І за допомогою цих імен ми можемо обмінюватися інформацією з двома зазначеними фреймами.
За допомогою скрипта можна вирішити таку задачу: припустимо відвідувач активує якусь посилання в першому фреймі, однак відповідна сторінка повинна завантажуватися не в цей же фрейм, а в інший. Прикладом такого завдання може служити складання меню (або навігаційних панелей), де один фрейм завжди залишається незмінним, але пропонує відвідувачу кілька різних посилань для подальшого вивчення даного сайту. Щоб вирішити це завдання, ми повинні розглянути на три випадки:
головне вікно / фрейм отримує доступ до кадру-нащадку
фрейм-нащадок отримує доступ до батьківського вікна / фрейму
фрейм-нащадок отримує доступ до іншого фрейму-нащадку
З точки зору об'єкта "вікно" (window) два зазначених фрейму називаються frame1 і frame2. Як можна бачити на попередньому малюнку, існує прямий взаємозв'язок між батьківським вікном і кожним фреймом. Так чином, якщо Ви пишете скрипт для батьківського вікна - тобто для сторінки, що створює ці фрейми - то можете звертатися до цих фреймах, просто називаючи їх по імені. Наприклад, можна написати:
frame2.document.write ( "Це повідомлення було надіслане від батьківського вікна.");

І нарешті, дуже часто Вам доведеться вирішувати задачу забезпечення доступу з одного фрейма-нащадка до іншого такого ж кадру-нащадку. Отже, як можна, перебуваючи в першому фреймі, записати що-небудь в другій - тобто, якою командою слід скористатися на HTML-сторінці page1.htm? Як можна побачити на нашому малюнку, між двома цими фреймами немає жодного прямого зв'язку. І тому ми не можемо просто так викликати frame2, перебуваючи в фреймі frame1, який просто нічого не знає про існування другого фрейма. З точки ж зору батьківського вікна другий фрейм дійсно існує і називається frame2, а до самого батьківському вікну можна звернутися з першого фрейму на ім'я parent. Таким чином, щоб отримати доступ до об'єкта document, що розмістився в другому фреймі, ми повинні написати наступне ,:
parent.frame2.document.write ( "Привіт, це виклик з першого фрейма.");