навчання javascript

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

При створенні web-сторінок Ви можете використовувати кілька вкладених тегів . Наступний приклад я знайшов в документації, що надається фірмою Netscape, (і злегка змінив його):

В результаті створена структура фреймів буде виглядати наступним чином:

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

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

  • головне вікно / фрейм отримує доступ до кадру-нащадку
  • фрейм-нащадок отримує доступ до батьківського вікна / фрейму
  • фрейм-нащадок отримує доступ до іншого фрейму-нащадку

З точки зору об'єкта "вікно" (window) два зазначених фрейму називаються frame1 і frame2. Як можна бачити на попередньому малюнку, існує прямий взаємозв'язок між батьківським вікном і кожним фреймом. Так чином, якщо Ви пишете скрипт для батьківського вікна - тобто для сторінки, що створює ці фрейми - то можете звертатися до цих фреймах, просто називаючи їх по імені. Наприклад, можна написати:

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

Давайте розглянемо, як створюються навігаційні панелі. В одному фреймі ми створюємо кілька посилань. Однак, якщо відвідувач активує будь-яку з них, відповідна сторінка буде поміщена не в той же самий кадр, а в сусідній.

Спершу нам необхідно написати скрипт, який створює зазначені фрейми. Такий документ виглядає точно так само, як і той, що ми рассматірвалі раніше в цій частині опису:

Тут start.htm - це та сторінка, яка спочатку буде показана в головному фреймі (main). У нас немає ніяких спеціальних вимог до змісту цієї сторінки. Наступна web-сторінка буде завантажена у фрейм "menu":

Якщо ж Ви хочете зробити функцію більш гнучкою, то можете скористатися можливістю передачі змінної як аргумент. Результат буде виглядати як: Після цього можна організувати виклик функції: loadtwo ( "first.htm", "second.htm") або loadtwo ( "third.htm", "forth.htm"). Очевидно, передача аргументів робить Вашу функцію більш гнучкою. В результаті Ви можете використовувати її багаторазово і в різних контекстах.

Схожі статті