Window - вікна js, ion
На малюнку зображена основна ієрархія об'єктів document, який в нашому випадку є HTML сторінкою (але це може бути і текстовий документ, і документ будь-якого типу) він розміщується у вікні браузера, - це вікно і є об'єкт window, - в ньому міститься те, що управляється браузером.
Коли вікно браузера відкрито то в пам'яті знаходиться об'єктна модель в которй визначений об'єкт window навіть якщо в вікно не завантажений жоден документ.
Створення вікна js і його розміри
У цьому методі використовується до трьох параметрів, які визначають такі характеристики вікна, як URL завантажується документа, його назва, визначене в атрибутах target дескрипторів html. а також фізичні параметри (розмір і вміст).
Розглянемо деякі особливості використання методу window.open ().
Щоб відкрити нове вікно js з заданими розмірами з відображеним документом index.html. розташованим в тій же папці на сервері, в якій зберігається поточна сторінка.
var subWindow = window.open ( "index.html", "ind", "height = 200, width = 300")
Зверніть увагу на те, що:
1.В наведеному вище коді використовується оператор присвоювання.
2.Параметри вікна, його розміри ( "index.html", "ind", "height = 200, width = 300") повинні бути вказані без пробілів -т.е. в рядку з зазначенням параметрів відкриття нового js вікна взагалі не повинно бути пробілів.
Якщо в сценарії головного вікна використовувати записи window.close (). self.close () або просто close (). то буде закрито головне вікно. а зовсім не додаткове. Тому для звернення до інших вікон слід використовувати посилання на потрібне вікно як частина загальної посилання. Цей момент важливий при складанні сценаріїв - якщо необхідно, щоб змінна, яка містить посилання на додаткове вікно, була доступна до тих пір, поки головний документ завантажений в браузер. Щоб забезпечити це, слід оголошувати цю змінну як глобальну, не всередині функції. Можна використовувати одну функцію, щоб відкривати вікна, а іншу для їх закриття.
Лістинг 1 описує сторінку, яка містить кнопку відкриття нового, порожнього вікна, яке згодом можна закривати з головного вікна.
Для того щоб побачити, як працює сценарій, слід задати розміри головного вікна браузера так, щоб воно не було розгорнуто на весь екран. Тоді при генерації нового вікна можна розмістити вікна на екрані так, щоб можна було спостерігати нове вікно навіть коли основне знаходиться на передньому плані.
Якщо вікно було при цьому "Приват" за основним, то для його відображення можна використовувати меню Window (Вікно) браузера. У лістингу 1 змінна newWindow оголошена як глобальна, тому обидві функції makeNewWindow () і closeNewWindow () без особливих проблем отримують до неї доступ.
Якщо змінна оголошується без присвоєння їй значення, то за замовчуванням воно дорівнює null.
Значення null інтерпретується як еквівалентну false в умовному операторі.
З іншого боку, наявність в умовному операторі будь-якого ненульового значення інтерпретується як true.
У функції closeNewWindow () перед використанням методу закриття close () спочатку перевіряється, чи було взагалі Відкрито нове вікно. Потім, для виконання очищення, змінної newWindow присвоюється значення null, так що при повторному натисканні на кнопці Close (Закрити) закриття вже неіснуючого вікно не відбувається.
При відкритому вікні буде викликано у вигляді рядкової змінної новий вміст.
Як і в лістингу 2, вміст записується в один підхід (хоча це і не є обов'язковим для окремого вікна). після чого відразу викликається метод close (). Тут зверніть увагу на важливу особливість: як в методі write (), так і в методі close () подокно задається в явному вигляді.
Лістинг 3. Використання методу document.wite () з іншим вікном
Далі розглянемо властивості і методи вікна найбільш часто використовувані користувачем.
Отримання доступу до властивостей і методів вікна
У сценарії посилання на властивості і методи об'єкта window можна реалізувати різними способами. Найбільш загальним і логічним підходом є той, в якому задається безпосереднє звернення до об'єкту window:
До об'єкту window часто звертаються за допомогою синоніма. Робиться це в тих випадках, коли в сценарії використовуються посилання на вікно, що містить поточний документ. Синонімом є ключове слово self.
У таких випадках посилання виглядають наступним чином:
Використовувати подібні посилання можна на власний розсуд.
Однак доцільно ставити посилання з допомогою self в складних сценаріях, в яких задіяно кілька фреймів або вікон. Тобто ідентифікатор self. використовується для позначення того поточного вікна, в якому знаходиться документ з даним сценарієм. А це, в свою чергу, робить сценарій більш Новомосковскбельним.
Як уже зазначалося, оскільки об'єкт window завжди присутній "на місці" при запуску сценарію, то на засланні на об'єкти всередині поточного вікна його назву можна опускати. Як приклад нижче наведена синтаксична модель звернення до властивостей і методів поточного вікна.
Зверніть особливу увагу на оператори, які використовуються в обробнику події onMouseOver
Маються на увазі:
window.status = 'Visit the Netscape Home page (home.netscape.com)' return true
При запуску цих операторів всередині обробника події потрібно розділяти їх крапкою з комою. Важливо навіть те, що весь набір операторів укладений в подвійні лапки ( "."). Щоб вставити в подвійних лапках рядок, присвоєну в якості значення властивості window.status, слід укласти цей рядок в одинарні лапки ( '.').
об'єкт Location
Інші інші властивості location наведені в таблиці нижче.
Наприклад якщо необхідно отримати весь URL і вивести його в alert () - використовуємо властивість href.
var a = window.location.href;
alert (a);
Методи об'єкта location
assign (url) завантажити документ з даного url reload ([brel]) перезавантажити документ за поточним URL. Аргумент brel - логічне значення, якщо воно true. то документ перезавантажується завжди з сервера, якщо false або не вказано, то браузер може взяти сторінку зі свого кеша. replace (url) замінити поточний документ на документ за вказаною url. Різниця, в порівнянні з assign () полягає в тому, що після використання replace () сторінка не записується в історії відвідувань. Зокрема, це означає, що відвідувач не зможе використовувати для повернення кнопку браузера "Назад". toString () повертає строкове представлення URL для об'єкта Location
Питання від користувачів:
Розглянемо два випадки в першому Ви змінюєте текст в новому вікні в яке завантажений файл лежить на тому ж домені що і батьківське вікно з якого створено це нове вікно помилки в цьому випадку не виникає.
У другому випадку ви не можете змінити текст в дочірньому вікні за правилами безпеки тому в це вікно завантажений файл знаходиться на іншому домені.
Вихідний код прикладу файл travelpalitra.com/1.html: