Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






У этого объекта есть много полезных методов, но основным можно считать метод open(), с помощью которого создается новое окно браузера (загружается еще одна его копия). Синтаксис этого метода представлен ниже:

переменная = window.open([имя_файла], [имя_ссылки_окна],

[строка_параметров])

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

Первым параметром имя_файла определяется полный или относительный URL-адрес открываемого в окне документа (если задана пустая строка, то открывается пустая станица).

Второй параметр имя_ссылки_окна позволяет задать имя вновь открытого окна, которое можно использовать в документе HTML в атрибуте target гипертекстовой ссылки для указания загрузки в него документа.

Параметр строка_параметров — строка, представляющая список параметров вновь создаваемого окна со значениями. Каждый параметр задается в виде параметр=значение. Все параметры вместе со своими значениями в строке отделены друг от друга запятыми. Допустимые параметры:

height=высота — определяет высоту окна в пикселях;

width=ширина — определяет ширину окна в пикселях;

left=значение — определяет горизонтальную координату верхнего левого окна в пикселях;

top=значение — определяет вертикальную координату верхнего левого окна в пикселях;

resizable={yes|no|1|0} — может ли пользователь изменять размеры окна;

location={yes|no|1|0} — отображается ли адресная строка;

menubar={yes|no|1|0} — отображается ли строка меню;

scrollbars={yes|no|1|0} — отображаются ли полосы прокрутки;

titlebar={yes|no|1|0} — отображается ли строка заголовка окна (только для HTML-приложений);

toolbar={yes|no|1|0} — отображается ли панель инструментов;

status={yes|no|1|0} — отображается ли строка состояния.

Например, следующий вызов, создаст новое окно браузера без панели инструментов и полос прокрутки, загрузив в него документ с указанным первым параметром абсолютным адресом. В любом документе HTML, для ссылки на это окно можно использовать имя linkWin. В сценарии ссылаться на это окно можно с помощью переменной winExample.

winExample = window.open(
" https://www.bhv.ru/library/index.html",

" linkWin", " toolbar=no, scrollbars=yes")

Вывод во вновь открытое окно осуществляется методом write() объекта document этого окна.

Закрывается окно методом close() без параметров:

window.close()

В сценарии можно использовать специальное имя self для ссылки на текущее окно или использовать переменную, хранящую ссылку на требуемое окно:

self.close()

newWindow.close()

4Пример 14. Открытие нового окна и запись в него

Создадим страницу HTML, открывающую новое окно браузера при щелчке в любом месте документа. Для этого обработчику onclick объекта document присвоим ссылку на функцию openNewWindow(), в которой открывается новое окно newWind и в него записывается абзац:

< script>

window.document.onclick = openNewWindow

function openNewWindow(){

newWind = window.open(

" ", " _blank",

" top=10, left=10, width=300, height=50, " +

" scrollbars=no, status=no, titlebar=no, toolbar=no, " +

" location=no, resizable=yes, menubar=no")

newWind.document.write(" < p> Предложение из сценария.< /p> ")

}

< /script>

< BODY >

< P> Щелчок в области документа откроет новое окно.< /P>

< /BODY>

Обратим внимание, что в качестве имени ссылки на окно из документа HTML можно указывать ключевые слова _blank и т. п., используемые в атрибуте target гиперссылок в соответствии со стандартом HTML.

Ряд методов объекта window влияет на положение окна относительно экрана монитора, его размеры и отображаемый документ:

moveBy(x, y) перемещает окно относительно текущего положения на заданные величины;
moveTo(x, y) перемещает окно в абсолютное положение относительно экрана (параметры абсолютные координаты верхнего левого угла окна);
resizeBy(x, y) изменяет текущие размеры окна на заданные величины;
resizeTo(x, y) устанавливает абсолютные размеры окна;
scroll(x, y) прокручивает содержимое окна к заданным величинам относительно левого верхнего угла области отображения окна;
scrollBy(x, y) прокручивает содержимое окна на заданные величины относительно текущего положения прокрутки;
scrollTo(x, y) прокрутка содержимого к заданным абсолютным координатам;
navigate(URL) загружает в текущее окно документ с указанным адресом;
print() печатает документ, загруженный в окно.

Ряд методов объекта window отображают диалоговые окна для взаимодействия с пользователем (мы с ними уже знакомы из предыдущих уроков):

alert(сообщение) окно с сообщением и кнопкой OK (возвращает true, если нажата кнопка OK, и false, если окно было закрыто);
prompt(сообщение, значение) окно с сообщением, полем ввода (в нем отображается значение второго параметра или default, если он опущен) и двумя кнопками OK и Cancel. Возвращает введенное пользователем в поле значение при нажатии кнопки OK или null при нажатии кнопки Cancel или закрытии окна;
confirm(сообщение) окно с сообщением и двумя кнопками (возвращает true, если нажата кнопка Yes, и false, если нажата кнопка No);

Метод setTimeout() запускает выполнение кода JavaScript, задаваемого первым строковым параметром, через определенный промежуток времени после выполнения метода.

Метод setInterval() запускает периодический " процесс" выполнения кода JavaScript, задаваемого первым строковым параметром, с интервалом, указанным вторым параметром.

переменная = window.setTimeout(строка_кода, интервал, [язык])

переменная = window.setInterval(строка_кода, интервал, [язык])

Интервал задается в миллисекундах (1000 соответствует 1 секунде).

Необязательный параметр язык определяет язык сценария для выполняемого кода (JavaScript, VBScript). По умолчанию предполагается язык JavaScript.

Для остановки запущенных процессов используются соответственно методы и, параметрами которых является переменная, в которой сохранен результат запуска " процесса":

window.clearTimeout(переменная)

window.clearInterval(переменная)

Одновременно можно запустить много " процессов". Обычно метод setInterval() используется для создания страницы HTML с движущимися элементами.

4Пример 15. Периодический " процесс"

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

< SCRIPT>

function myMessage() {

alert(" My Message")

}

< /SCRIPT>

< BODY onload='setInterval(" myMessage()", 3000)'>

< p> Каждые три секунды будет появляться сообщение< /p>

< /BODY>

Фреймы

В HTML элемент-контейнер < FRAMESET>...< /FRAMESET>, используемый вместо элемента BODY, определяет специальный тип документа, позволяющий отображать одновременно несколько документов HTML в одном окне браузера. Область отображения браузера разбивается на несколько частей (фреймов) с помощью вложенных в элемент FRAMESET элементов FRAME, в которых и отображаются соответствующие документы HTML.

Контейнер < FRAMESET> может содержать кроме элементов < FRAME> и другие теги < FRAMESET>, образуя, таким образом, вложенные наборы фреймов. Пример страницы HTML, задающей вложенные наборы фреймов, представлен ниже:

< FRAMESET COLS=" 30%, 70%" >

< FRAMESET ROWS=" 30%, 70%" >

< FRAME SRC=" " NAME=" clock" >

< FRAME SRC=" menu.html" NAME=" menu" >

< /FRAMESET>

< FRAME SRC=" " NAME=" content" >

< /FRAMESET>

Для доступа к фреймам из сценария JavaScript предусмотрен объект top, являющийся родителем всех фреймов (в нашем примере clock, menu и content). Для ссылки на фреймы страницы можно использовать либо символические имена, либо свойство-массив frames объекта top, в котором содержатся ссылки на все фреймы страницы. Так, на первый фрейм можно сослаться двумя способами:

top.clock

top.frames[0]

Каждый фрейм в сценарии представляется как объект window, обладающий всеми рассмотренными выше свойствами и методами этого объекта.

Свойство location фрейма содержит адрес загруженного в него документа. Изменение значения этого свойства приведет к загрузке нового документа в соответствующий фрейм. Следующий фрагмент кода HTML задает на странице menu.html кнопку с именем Во фрейм clock, при щелчке на которую во фрейм clock загружается страница HTML:

< FORM>

< INPUT TYPE=" button" VALUE=" Во фрейм clock"

onclick=" top.clock.location='clock.html'" >

< /FORM>

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

4Пример 16. Взаимодействие с фреймом из сценария

Создадим страницу с двумя фреймами:

< FRAMESET ROWS=" 30%, 70%" >

< FRAME SRC=" frame1.html" NAME=" Frame1" >

< FRAME SRC=" " NAME=" Frame2" >

< /FRAMESET>

Во фрейм Frame1 загрузим файл frame1.html.:

< FORM>

< input type=" button" value=" Запись во фрейм Frame2"

onclick=" top.Frame2.document.write('< p> Я из фрейма Frame1.< /p> ')" >

< /FORM>

При щелчке на кнопке Запись во фрейм Frame2 второй фрейм будет заполняться содержимым, определенным в качестве параметра метода write объекта document этого фрейма.

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

4Пример 17. Взаимодействие вложенных фреймов

Загружаемая страница с фреймами frame.html:

< FRAMESET ROWS=" 30%, 70%" >

< FRAME SRC=" frame1-1.html" NAME=" Frame1" >

< FRAME SRC=" frame2.html" NAME=" Frame2" >

< /FRAMESET>

Файл frame2.html (названия фреймов могут быть такими же, как и в главной странице!):

< FRAMESET COLS=" 30%, 70%" >

< FRAME SRC=" " NAME=" Frame1" >

< FRAME SRC=" " NAME=" Frame2" >

< /FRAMESET>

Файл frame1-1.html, предоставляющий запись во фрейм Frame1 страницы frame2.html:

< FORM> < input type=" button" value=" Запись во второй фрейм."

onclick=" top.Frame2.Frame1.document.write('< p> Я из фрейма Frame1 файла frame1-1.html.< /p> ')" > < /FORM>

Можно на фрейм Frame1 файла frame2.html сослаться и так:

top.frames[1].frames[0]






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.