Ecmascript является ядром JavaScript, но при использовании JavaScript в Интернете, то BOM (модель объекта браузера) является реальным ядром.
Основным объектом BOM является окно, которое представляет экземпляр браузера.
В браузере объект Window является как интерфейсом для JavaScript, чтобы получить доступ к окну браузера, так и глобальный объект, указанный Ecmascript. То есть любая переменная, объект и функция, определенная на веб -странице, принимает окно в качестве своего глобального объекта.
1. Глобальный объем
Поскольку окно -объекты играют роль глобальных объектов, все объекты, переменные и функции, объявленные в глобальном объеме, станут свойствами и методами окон.
По -прежнему существует разница между определением глобальных переменных и определением атрибутов на объектах окон: глобальные переменные не могут быть удалены с помощью удаления, в то время как атрибуты, определенные на объектах окна, в порядке.
var возраст = 28; window.color = "red"; // В IE <9, ошибка выброшена, и False Delete Window.age возвращается в других браузерах; // в IE <9, ошибка выброшена, и True Delete Window.color возвращается в других браузерах; // вернуть истинное оповещение (window.age); // 28 оповещение (window.color); //неопределенный
При добавлении атрибутов окна с использованием операторов VAR существует свойство с именем [[[настраивается]]. Значение этого свойства устанавливается на ложь, поэтому атрибуты, определенные таким образом, не могут быть удалены с помощью Delete.
При попытке получить доступ к не вырубной переменной ошибку, но, запрашивая объект окна, вы можете знать, существует ли возможная не выявленная переменная.
// Ошибка брошена здесь, потому что OldValue не объявляет var newvalue = oldValue; // ошибка не выбрасывается здесь, потому что это свойство запрос var newvalue = window.oldvalue // alert (newvalue); //неопределенный
Фактически, многие глобальные объекты JavaScript, такие как локация и навигация, на самом деле являются свойствами окно -объектов.
2. Окончательные отношения и структура
Если страница содержит кадры, каждый кадр имеет свой собственный объект окна и сохраняется в коллекции кадров.
В коллекции кадров можно получить доступ с помощью числового индекса или имени рамы.
<html> <Head> <title> Пример Frameset </title> </head> <Frameset Rows = "160,*"> <frame src = "frame.htm" name = "topframe"> <frameset cols = "50%, 50%"> <crame src = "enomionframe.htm" name = "Leftframe"> <crame src = "iThrAmThrame. HTM" name = "> <crame src =" iltan ithr.htthrame .htthrame.ht name = " name = "rightframe"> </frameset> </frameset> </html>
На этот пример на приведенном выше структуре можно ссылаться window.frames [0] или window.frames ["topframe"]. Тем не менее, лучше всего использовать top.frames [0] для доступа к структуре.
Верхний объект всегда указывает на самую высокую (внешнюю) структуру слоя, то есть окно браузера. Использование его гарантирует, что в одном кадре доступ к другой кадре.
Другой объект окна, противоположный верхнему объекту, - родитель, родительский объект всегда указывает на прямую верхнюю структуру текущей структуры.
Существует также объект , который всегда указывает на окно. На самом деле, я и окно можно использовать друг с другом. Цель введения самостоятельных объектов состоит только в том, чтобы соответствовать лишь лучшим и родительским объектам.
Все эти объекты являются свойствами окна и могут использоваться с window.parent или window.top.
3. Расположение окна
Большинство браузеров предоставляют ScreenLeft и Screenop, которые используются для представления положения окна относительно левой и верхней стороны экрана, соответственно. FF предоставляет ту же информацию о окне в свойствах ScreenX и Screeny, а Safari Summe Chorme также поддерживает эти два свойства одновременно.
Используйте следующий код, чтобы получить левую и верхнюю позицию окна через браузер.
var LeatsPos = (typeof window.screenleft == "number")? window.screenleft: window.screenx; var toppos = (typeof window.screentop == "number")? window.screentop: window.screeny;
Стоит отметить, что в IE и Opera, ScreenLeft и Screenop сохраняют расстояние от левой и верхней стороны экрана в видимую область страницы, представленной окном -объектом. В Chrome, FF и Safari, Spenary и Screenop сохраняют значения координат всего браузера на экране.
Конечным результатом является то, что точные значения координат на левой и верхней стороне окна не могут быть получены в условиях поперечного браузера.
Используя методы moveto () и moveby (), окно можно точно перемещать в новую позицию. Оба метода получают два параметра. Moveto () получает координаты оси x и y, а Moveby () получает движущиеся пиксели.
// переместить экран в верхний левый движения (0,0); // переместить окно влево на 50px moveby (-50,0);
Однако эти два метода могут быть отключены браузером. Эти два метода применимы только к самым внешним объекту окна и не применимы к фреймворкам.
4. Размер окна
Основные браузеры предоставляют 4 свойства для определения размера окна: внутренняя пропускная способность, внутренняя часть, верхняя трубка и верхняя часть.
В IE9+, SAFARI и FF, OUTERWIDTH и OUTERHIGHT возвращают размер самого окна браузера (независимо от доступа, из каких структур), но в Opera значения этих двух свойств представляют размер контейнера для представления страницы (размер одного окна вкладки). Внутренняя трубка и внутреннее количество представляют размер представления страницы в контейнере (за исключением ширины границы). Но в Chrome все эти 4 свойства представляют размер просмотра, а не размер браузера.
IE9 не предоставил атрибуты для получения размера окна браузера раньше; Тем не менее, он предоставляет информацию в визуальной области страницы через DOM.
В IE, FF, Chrome, Opera и Safari информация о просмотре страницы хранится в Document.DocumentElement.ClientWidth и Document.DocumentElement.ClientHight. В IE6 он должен быть эффективным в стандартном режиме. Если это беспорядочный режим, та же информация должна быть получена через Document.Body.ClientWidth и Document.Body.ClientHight. Chrome не различает стандартный режим или смешанный режим.
Хотя размер самого окна браузера не может быть определен в конце, размер просмотра страницы может быть получен.
var pagewidth = window.innerwidth, pageHeight = window.innerheight; if (typeof pagewidth! = "number") {if (document.compatmode == "css1compat") {pagewidth = document.documentelement.clientWidth; pageHeight = document.documentelement.clientHeight; } else {pagewidth = document.body.clientwidth; PageHeight = Document.Body.ClientHeight; }} alert ("width:" + pagewidth); оповещение («высота:» + pageHeight);Для мобильных устройств, window.innerwidth и window.innerhight удерживают видимый просмотр, который составляет размер области страницы на экране. Мобильные браузеры IE должны получить ту же информацию через Document.documentelement.clientWidth и Document.DocumentElement.ClientHight.
Методы Resizeto () и resizeby () могут использоваться для регулировки размера окна браузера. Оба метода получают два параметра. resizeto () получает новую ширину и новую высоту окна браузера, а Resizeby () получает разницу в ширине и разницу в высоте между новым окном и старым окном.
// Приспособитесь к 100*100 Resizeto (100 100); // Приспособитесь к 200*150 Moveby (100,50);
Однако эти два метода могут быть отключены браузером. Эти два метода применимы только к самым внешним объекту окна и не применимы к фреймворкам.
5. Навигация и открыть окна
Метод window.open () может открыть либо определенный URL, либо новое окно браузера. Этот метод получает 4 параметра: URL, целевая цель с окном, строку функции и логическое значение, указывающее, заменяет ли новая страница текущую страницу.
неожиданно возникнуть
Различные параметры
Среди них, да/нет, также может быть использован 1/0; PixelValue - это конкретное значение, единичные пиксели.
Параметры | Диапазон значений | Описание
Всегда понижено | Да/Нет | Укажите, что окна скрыты за всеми окнами
Всегда раздавлено | Да/Нет | Укажите Windows, подвешенные на все Windows
зависел | Да/Нет | Независимо от того, закрыто ли родительское окно одновременно
Каталоги | Да/Нет | Колонны каталогов NAV2 и 3 видимы?
Высота | PixelValue | Высота окна
Hotkeys | Да/Нет | Установите безопасную выпуск Hotkey в окне без бара меню
innerheight | PixelValue | высота пикселя документа в окне
Innerwidth | PixelValue | PixelWidth документа в окне
Расположение | Да/Нет | Виден ли полоса?
Менубар | Да/Нет | Является ли бар меню видна?
OuterHeight | PixelValue | Установите высоту пикселя окна (включая декоративные границы)
Overweidth | PixelValue | Устанавливает ширину пикселей окна (включая декоративные границы)
Репрезентабельно | Да/Нет | Регулируем ли размер окна?
ScreenX | PixelValue | Длина окна Pixelle на левую границу экрана
Screeny | PixelValue | Длина окна Pixelle до верхней границы экрана
Прокрутки | Да/нет | Будь то прокрутка в окне
TITLEBAR | Да/Нет | ЗАПУСКА ЗАВЯЗАТЕЛЬСТВА ВИНДА ПИСЬМО?
Панель инструментов | Да/Нет | Виден ли панель инструментов?
Ширина | Pixelvalue | Ширина пикселей окна
z-look | Да/Нет | Плавет из окна на других окнах после его активации
Пример:
window.open ('page.html', 'newwindow', 'height = 100, width = 400, top = 0, left = 0, nointbar = no, menubar = no, scrollbars = no, resizable = no, location = no, nate = no')После того, как сценарий будет запущен, Page.html будет открыт в новой форме NewWindow, шириной 100, высота 400, 0 пикселей от верхней части экрана, 0 пикселей слева от экрана, без панели инструментов, нет панели меню, без стержня прокрутки, без сброса, без адресной панели и нет панели статуса.
6. Прерывистые звонки и временные звонки
JavaScript-это однопоточный язык, но он позволяет выполнять код планирования в определенный момент, установив значение тайм-аута и время интервала. Первый выполняет код после указанного времени, в то время как последний вызывает один раз в течение каждого указанного времени.
Тайм -аут вызов settimeout ()
Метод settimeout () принимает два параметра, первый параметр является функцией, а второй параметр - время (единицы микросекунд), который возвращает числовой идентификатор.
setTimeout (function () {alert ("hello!");}, 1000);После вызова SetTimeout () метод вернет численное идентификатор, указывая на вызов тайм -аута, а вызов тайм -аута может быть отменен.
var TimeOoutId = setTimeout (function () {alert ("hello!");}, 1000); ClearTimeOut (TimeOoutID);Прерывистый вызов setInterval ()
Метод setInterval () принимает два параметра, первый параметр - это функция, второй параметр - время (единица микросекунд) и возвращает числовой идентификатор
setInterval (function () {alert ("hello!");}, 1000);Отменить вызов в clearInterval () и принять параметр прерывистый идентификатор вызова
var extralid = null; var span = document.createElement ("span"); // Создать SPAN NODE SPAN.ID = "TIME"; // Установить документ SPAN ID.Body.AppendChild (span); // Добавить функцию SPAN INGRENTNumber () {var now = new Date (); var TimeStR = now.TolocaletImeString (); span.innertext = timeStr; num ++; if (num == 10) {clearInterval (extralid); // время остается неизменным через десять секунд}} extralid = setInterval (INGREMENTMUME, 1000);Попробуйте использовать тайм -вызовы вместо прерывистых вызовов
var num = 0; var max = 10; function IngrementNumber () {num ++; if (num <max) {settimeout (incrementNumber, 1000); } else {alert ("ok"); }} setTimeout (incrementNumber, 1000);7. Системное диалоговое окно
Предупреждающая коробка Alert ()
оповещение («Добро пожаловать!»);
В информационном поле sefint () есть кнопка отмены
if (Подтверждение ("Вы согласны?")) {alert ("согласен"); } else {alert ("не согласен"); }Rasfor (), побуждая пользователя ввести текст
var result = recavle («Вы уважаете свою фамилию?», «»); if (result! == null) {alert ("добро пожаловать" +результат); }Приведенное выше подробное объяснение BOM (окно -объект) в JavaScript является всем контентом, общим редактором. Я надеюсь, что это может дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.