Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи мови JavaScript.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.04 Mб
Скачать

2.4. Сценарії, що працюють з об'єктами window

2.4.1. Як закрити вікно браузера

Треба вирішити задачу, неможливу без застосування файла сценарію як-от закрити головне вікно браузера за допомогою кнопки, розташованої в документі HTML.

Якщо натиснути на кнопку з назвою Close Navigator Window, сценарій відобразить на екрані діалогову панель.

Дана діалогова панель відображається за допомогою методу confirm. Якщо натиснути на кнопку ОК, сценарій спробує закрити вікно браузера за допомогою методу close.

Браузер Microsoft Internet Explorer версії 4.0 запитує дозвіл на закриття вікна ще разом.

Вихідний текст документа HTML, що закриває головне вікно браузера, поданий у листинге 2.3.

Листинг 2.3. Файл chapter2/CloseAll/CloseAll. html

<HEAD>

<Т1ТLЕ>Закриваємо вікно 6payзepa</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!--

function CloseNavWnd()

{

if(confirm("Ви дійсно бажаєте закрити вікно браузера? "))

window.close();

}

//-->

</SCRIPT>

</HEAD>

<BODY BGCOLOR=white>

<Н1>Закриваємо вікно браузера</Н1>

<Р>Для того щоб закрити вікно браузера, натисніть кнопку "Close Navigator Window", розташовану нижче:

<FORM NAME="selectForm">

<P><INPUT TYPE="button" VALUE="Close Navigator Window"

onClick="CloseNavWnd();">

</FORM>

</BODY>

</HTML>

У області заголовка документа визначена функція CloseNavWnd:

function CloseNavWnd()

{

if{confirm("Ви дійсно бажаєте закрити вікно браузера?"))

window. close();

}

Ця функція обертається до методу confirm, що виводить на екран діалогову панель із запитом на закриття вікна. Якщо користувач натисне кнопку ОК, метод поверне значення true, а якщо на кнопку Cancel - значення false.

У випадку позитивної відповіді функція CloseNavWnd викликає метод close для поточного об'єкта window. У даному випадку таким об'єктом є вікно браузера. Замість об'єкта window можна вказувати об'єкт self, тому що це синонім поточного вікна:

self. close();

Для того щоб функція CloseNavWnd визивалася після того, як користувач натискає кнопку, у рядку визначення цієї кнопки зазначена оброблювач події onClick:

<P><INPUT TYPE="button" VALUE="Close Navigator Window"

onClick="CloseNavWnd();">

2.4.2. Открываем нове окно

При відкритті такого документа HTML на екрані з'являється діалогова панель із повідомленням.

Якщо натиснути на кнопку ОК у цій діалоговій панелі, то у вікні браузера з'явиться вміст документа.

У цьому вікні розташована кнопка Open Hello window. Якщо натиснути на цю кнопку, буде створене ще одне вікно браузера, у який завантажи_ уміст файла Hello.html. Проте зовнішній вигляд цього вікна буде декілька незвичний. У вікні немає ні смуг перегляду, ні меню, ні інструментальної лінійки - при створенні цього вікна в сценарії було зазначено, що перераховані вище елементи користувального інтерфейсу відображати не потрібно. Крім того, були визначені точні розміри вікна.

Якщо тепер закрити вікно документа NewWnd. html, на екрані з'явиться діалогова панель із запрошенням.

Вихідний текст документа HTML NewWnd. html поданий у листинге 2.4.

Листинг 2.4. Файл chapter2/NewWnd/NewWnd. html

<HTML>

<HEAD>

<TITLE>Window object</TITLE>

<SCRIPT LANGUAGE="JavaScript">

<!--

function Hello()

{

window.alert("Welcome to my home page!")

}

function Bye()

{

window.alert("Bye! Come back again!")

}

function OpenHelloWnd()

{

var wndNewWindow;

wndNewWindow = window.open("hello.html","", "toolbar=no,menubar=no,scrollbars=no,width=300,height-100");

}

//-->

</SCRIPT>

</HEAD>

<BODY BGCOLOR=white onLoad="Hello()" onUnload="Bye()">

<Hl>Open second window</Hl>

<FORM NAME="selectForm">

<P><INPUT TYPE="button" VALUE="Open Hello window"

onClick="OpenHelloWnd();">

</FORM>

</BODY>

</HTML>

У операторі <BODY> задане опрацювання події onLoad і onUnload:

<BODY BGCOLOR=white onLoad="Hello()" onUnload="Bye()">

Коли користувач завантажує документ, після закінчення завантаження браузер викликає функцію Hello, призначену для опрацювання події onLoad. Перед видаленням вікна з документом визивається оброблювач події onUnload, реалізований у функції Bye.

Функції Hello і Bye визначені в заголовку документа HTML і не мають ніяких особливостей. Для висновка діалогової панелі з повідомленням ці функції викликають метод alert.

Коли користувач натискає кнопку "Open Hello window", визначену у формі, визивається функція OpenHelloWnd. Ця функція відчиняє нове вікно браузера, завантажуючи в нього новий документ HTML.

Вікно відчиняється в такий спосіб:

wndNewWindow - window. open("hello. html", "", "toolbar-no,menubar=no,scrollbars=no,width=300,height=100");

У якості першого параметра методу open передається адреса URL документа HTML, що повинні бути завантажені у вікно. Другий параметр визначає ім'я вікна (його не задали), а третій - визначає параметри вікна.