Window js что это
Перейти к содержимому

Window js что это

  • автор:

Объект Window

home

Объект Window представляет собой открытое окно браузера.

Данный объект является корневым и все свойства, методы, функции и даже переменные являются его свойствами и методами.

Подробнее об объекте Window можно узнать в нашем JavaScript учебнике.

Свойства объекта Window

Свойство Описание
closed Возвращает логическое значение (true или false) в зависимости от того, закрыто указанное окно или отрыто.
frames Возвращает массив всех фреймов на странице (включая iframe).
document Возвращает объект Document данного окна.
history Возвращает объект History данного окна.
length Возвращает количество фреймов (включая iframe), которые находятся в данном окне.
location Возвращает объект Location данного окна.
name Устанавливает или возвращает имя данного окна.
navigator Возвращает объект Navigator данного окна.
opener Возвращает ссылку на окно, которое открыло данное.
parent Возвращает родительское окно данного окна.
screen Возвращает объект Screen данного окна.
self Возвращает текущее окно.
top Возвращает верхнее браузерное окно для данного окна.

Методы объекта Window

Метод Описание
alert() Вызывает окно оповещения, которое содержит текст сообщения и клавишу ОК.
blur() Делает окно неактивным.
clearInterval() Прекращает повторное выполнение кода заданного setInterval().
clearTimeout() Отменяет запланированное методом setTimeout() выполнение кода.
close() Закрывает окно.
confirm() Вызывает окно подтверждения содержащее текст сообщения и клавиши ОК и Отмена.
focus() Делает окно активным.
moveBy() Смещает окно относительно его текущей позиции.
moveTo() Перемещает окно на указанную позицию.
open() Открывает новое окно браузера.
print() Распечатывает содержимое текущего окна.
prompt() Вызывает окно запроса, побуждающее посетителя ввести в него определенные данные.
scrollBy() Прокручивает содержимое окна на указанное количество пикселей.
scrollTo() Прокручивает содержимое окна до указанных координат.
setInterval() Вызывает функцию или выполняет код через определенные промежутки времени (указанные в миллисекундах).
setTimeout() Вызывает функцию или выполняет код после указанного количества миллисекунд один раз.

Wisdomweb.ru © 2023.
Все права защищены. Любое использование материалов данного сайта без разрешения администрации запрещено.
Онлайн учебники по HTML, HTML5, CSS, JavaScript, AJAX, HDOM, jQuery.

Работа с браузером и BOM

Большое значение в JavaScript имеет работа с веб-браузером и теми объектами, которые он предоставляет. Например, использование объектов браузера позволяет манипулировать элементами html, которые имеются на странице, или взаимодействовать с пользователем.

Все объекты, через которые JavaScript взаимодействует с браузером, описываются таким понятием как Browser Object Model (Объектная Модель Браузера).

Browser Object Model можно представить в виде следующей схемы:

Browser Object Model in JavaScript

В вершине находится главный объект — объект window , который представляет собой браузер. Этот объект в свою очередь включает ряд других объектов, в частности, объект document , который представляет отдельную веб-страницу, отображаемую в браузере.

Объект window

Объект window представляет собой окно веб-браузера, в котором размещаются веб-страницы. window является глобальным объектом, поэтому при доступе к его свойствам и методам необязательно использовать его имя. Например, window имеет метод alert() , который отображает окно сообщения. Но нам необязательно писать:

window.alert("Привет мир!");

window можно не использовать:

alert("Привет мир!");

Но так как данный объект глобальный, то это накладывает некоторые ограничения. Например:

var alert = function(message)< document.write("Сообщение: " + message); >; window.alert("Привет мир!");

Все объявляемые в программе глобальные переменные или функции автоматически добавляются к объекту window . И поскольку название новой функции будет совпадать с названием метода alert() , то произойдет переопределение этого метода в объекте window новой функцией.

И если мы объявим в программе какую-нибудь глобальную переменную, то она нам доступна как свойство в объекте window:

var message = "hello"; document.write(window.message);

Глобальный объект

Глобальный объект предоставляет переменные и функции, доступные в любом месте программы. По умолчанию это те, что встроены в язык или среду исполнения.

В браузере он называется window , в Node.js — global , в другой среде исполнения может называться иначе.

Недавно globalThis был добавлен в язык как стандартизированное имя для глобального объекта, которое должно поддерживаться в любом окружении. Он поддерживается во всех основных браузерах.

Далее мы будем использовать window , полагая, что наша среда – браузер. Если скрипт может выполняться и в другом окружении, лучше будет globalThis .

Ко всем свойствам глобального объекта можно обращаться напрямую:

alert("Привет"); // это то же самое, что и window.alert("Привет");

В браузере глобальные функции и переменные, объявленные с помощью var (не let/const !), становятся свойствами глобального объекта:

var gVar = 5; alert(window.gVar); // 5 (становится свойством глобального объекта)

То же самое касается функций, объявленных с помощью синтаксиса Function Declaration (выражения с ключевым словом function в основном потоке кода, не Function Expression)

Пожалуйста, не полагайтесь на это. Такое поведение поддерживается для совместимости. В современных проектах, использующих JavaScript-модули, такого не происходит.

Если бы мы объявили переменную при помощи let , то такого бы не произошло:

let gLet = 5; alert(window.gLet); // undefined (не становится свойством глобального объекта)

Если свойство настолько важное, что вы хотите сделать его доступным для всей программы, запишите его в глобальный объект напрямую:

// сделать информацию о текущем пользователе глобальной, для предоставления доступа всем скриптам window.currentUser = < name: "John" >; // где угодно в коде alert(currentUser.name); // John // или, если у нас есть локальная переменная с именем "currentUser", // получим её из window явно (безопасно!) alert(window.currentUser.name); // John

При этом обычно не рекомендуется использовать глобальные переменные. Следует применять их как можно реже. Дизайн кода, при котором функция получает входные параметры и выдаёт определённый результат, чище, надёжнее и удобнее для тестирования, чем когда используются внешние, а тем более глобальные переменные.

Использование для полифилов

Глобальный объект можно использовать, чтобы проверить поддержку современных возможностей языка.

Например, проверить наличие встроенного объекта Promise (такая поддержка отсутствует в очень старых браузерах):

if (!window.Promise)

Если нет (скажем, используется старый браузер), мы можем создать полифил: добавить функции, которые не поддерживаются окружением, но существуют в современном стандарте.

if (!window.Promise) < window.Promise = . // собственная реализация современной возможности языка >

Итого

  • Глобальный объект хранит переменные, которые должны быть доступны в любом месте программы. Это включает в себя как встроенные объекты, например, Array , так и характерные для окружения свойства, например, window.innerHeight – высота окна браузера.
  • Глобальный объект имеет универсальное имя – globalThis . …Но чаще на него ссылаются по-старому, используя имя, характерное для данного окружения, такое как window (браузер) и global (Node.js).
  • Следует хранить значения в глобальном объекте, только если они действительно глобальны для нашего проекта. И стараться свести их количество к минимуму.
  • В браузерах, если только мы не используем модули, глобальные функции и переменные, объявленные с помощью var , становятся свойствами глобального объекта.
  • Для того, чтобы код был проще и в будущем его легче было поддерживать, следует обращаться к свойствам глобального объекта напрямую, как window.x .

window

Объект window сочетает два в одном: глобальный объект javascript и окно браузера.

Для обращения к функциям и методам window не нужно указывать объект:

window.decodeURI(..) // то же что и decodeURI(..)

Вообще, любая переменная в конечном счете(если не найдена локально) ищется в глобальном объекте.

// можно указать window явно - будет работать: a = new window.String("test")

Да, и кстати window является свойством window :

xhr = new window.window.window.XMLHttpRequest()

В IE: window !== window.window. Странно, да?

Кроме роли «глобального объекта», window также предоставляет интерфейс для работы с окном браузера.

В списке методов объекта window перечислены именно эти функции, работающие с окном браузера. Прочие функции вы найдете среди глобальных методов.

Методы

Свойства

Автор: Гость (не зарегистрирован), дата: 29 октября, 2009 — 21:27

a где window.alert ?

Автор: Илья Кантор, дата: 29 октября, 2009 — 23:06
Автор: Гость (не зарегистрирован), дата: 13 февраля, 2010 — 13:52

События бы было тоже неплохо написать

Автор: Гость (не зарегистрирован), дата: 13 ноября, 2010 — 20:55

тут пары методов нет. и не пары, а больше. например window.open или window.alert

Автор: B@rmaley.e>Читать умеете? В первом комменте спросили про alert. А open есть.

Автор: Гость (не зарегистрирован), дата: 4 декабря, 2010 — 18:32

А куда относится window.onload ? Нигде не могу найти информацию.

Автор: dmitlantis, дата: 10 апреля, 2011 — 20:23

А как насчёт следующих методов объекта window?:

  1. back()
  2. blur()
  3. execScript()
  4. find()
  5. focus()
  6. forward()
  7. home()
  8. moveBy()
  9. moveTo()
  10. navigate()
  11. print()
  12. resizeBy()
  13. resizeTo()
  14. scroll()
  15. scrollBy()
  16. scrollTo()
  17. setHotKeys()
  18. setResizeeable()
  19. stop()

И где, простите за оффтоп, интересно остальные системные объекты браузера? Напр. Объект document, а также информация о внутренних объектах window: screen, navigator, layer и т.п. . не полный какой-то справочник получается. или это скорее краткая шпаргалка?

Автор: Гость (не зарегистрирован), дата: 22 мая, 2012 — 18:13

Поддерживаю, мне нужно было почитать что такое navigate, включил поиск по сайту и выдал 2 ссылки, на которых ничего нет. Справочник наполовину пустой или наполовину полный.)

Автор: Mikle, дата: 8 июня, 2012 — 16:29

for( var k in window ) вам в помощь

Автор: Гость (не зарегистрирован), дата: 18 января, 2013 — 19:20

Всем привет
Подскажите пожалуйста как сделать чтобы код

можно было применить не к фрейму а к div
?

Автор: Гость (не зарегистрирован), дата: 6 сентября, 2013 — 20:57

А почему нет window.showModalDialog()?

Автор: Гость (не зарегистрирован), дата: 26 марта, 2015 — 08:05

ребят нужна помощь не могу разобраться как это работает window[«player»+this.id]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *