Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2022-10-05 | 17 |
5.00
из
|
Заказать работу |
|
|
А теперь настало время поговорить о классах и объектах Web-обозревателя подробнее.
Давайте посмотрим на какую-нибудь Web-страницу. Что она собой представляет? Фактически, иерархию элементов. Мельчайшие элементы страницы, например текстовые абзацы, являются потомками более крупных и сложных элементов, например, свободно позиционируемых элементов. Свободные элементы, в свою очередь, могут находиться в других свободных элементах или непосредственно в самой странице. Получается весьма сложная многоуровневая структура, в которой одни элементы зависят от других.
Описать такую структуру можно с помощью объектов. Точнее, сложной иерархии объектов, вложенных друг в друга и зависящих друг от друга. Такая структура называется объектной моделью документа (Document Object Model, DOM). Все современные программы Web-обозревателей представляют Web-страницу как иерархический набор объектов.
Какое преимущество дает пользователям такой подход? Никакого. Все это рассчитано только на программистов, разрабатывающих Web-сценарии.
Каждый из объектов, из которых состоит Web-страница, имеет набор свойств, предоставляющих доступ к значениям различных атрибутов соответствующего тега, методов, с помощью которых этим объектом можно манипулировать, и событий, которые могут в этом объекте происходить и которые можно обрабатывать. Это позволяет управлять практически любым элементом страницы, самой страницей и даже самим Web-обозревателем, используя специально написанные Web-сценарии.
Например, именно таким образом на Web-странице создаются анимированные элементы (см. главу 12). Также с помощью сценариев можно изменять цвета, параметры шрифта и даже само содержимое элементов страницы. Более того, так можно управлять и самим Web-обозревателем: открывать и закрывать вспомогательные окна, перемещаться взад-вперед по списку "истории" и даже принудительно загружать нужные Web-страницы без участия пользователя.
|
Неужели вы думали, что Web-программисты пройдут мимо такой возможности! Если вы думаете, что пройдут, – вы плохо их знаете. Вспомните, например, что говорилось в предыдущей главе об анимации. Едва появилась возможность немного подвигать по странице тем или иным рисунком, как Web-программисты эту возможность реализовали. А сейчас анимацию поддерживают даже Web-редакторы, и Dreamweaver тому пример.
Но хватит говорить на отвлеченные темы! Давайте все-таки займемся объектной моделью документа.
Сначала выясним, каким образом можно получить доступ к нужному элементу. Для этого ему необходимо дать уникальное имя. Делается это с помощью атрибута ID или NAME. Атрибут ID поддерживается практически всеми тегами HTML, атрибут NAME – только некоторыми. К тегам, поддерживающим этот атрибут, относятся формы, элементы управления, фреймы, гиперссылки и некоторые другие.
Но почему же нельзя пользоваться только атрибутом ID? Все дело в проклятой несовместимости Navigator 4.x и интернет-стандартов. Старые версии Navigator используют атрибут ID только для присвоения элементам стилей, а для задания имен признают только атрибут NAME. Видите, какая морока!..
Дав с помощью атрибутов ID или NAME элементу страницы уникальное имя.вы можете обращаться к нему из сценария, вызывая его методы и свойства. Интерпретатор сам найдет нужный элемент по его имени. Для доступа к элементу страницы в Internet Explorer используется синтаксис:
<Имя элемента, заданное в атрибутах ID или NAME>.<Свойство или метод>
Если же вы пишете сценарий для Navigator 4.x, делайте так:
document["<Имя элемента, заданное в атрибуте NAME>"].<Свойство или метод>
Давайте приведем небольшой пример, поясняющий вышесказанное.
<P ID="para" STYLE="color: #0000FF">Некийтекст.</P>
|
Сначала мы создали текстовый абзац, назвали его para (обратите внимание на значение атрибута ID) и присвоили ему встроенный стиль, задающий цвет текста. Сейчас мы этот цвет текста изменим, воспользовавшись Web-сценарием.
para.style.color = "#FF0000";
Здесь нужны дополнительные пояснения. Дело в том, что каждый элемент страницы в объектной модели документа имеет внутренний объект style, дающий доступ к его встроенному стилю. Обратиться к этому объекту можно через одноименное свойство, что мы и сделали. А уж объект style предоставляет доступ ко всем атрибутам встроенного стиля через одноименные свойства. В данном примере для получения доступа к значению атрибута стиля color использовалось свойство color.
Вы можете изменить выравнивание текста этого абзаца, обратившись к свойству align:
para.align = "center";
Свойство align предоставляет доступ к значению атрибута ALIGN тега <р>.
К несчастью, вышеприведенный пример будет работать только в самых последних программах Web-обозревателей. Пресловутый Navigator 4.x не позволяет изменять внешний вид и содержимое элементов страницы после ее загрузки. Исключение составляют только графические изображения, фреймы и слои.
А вот этот код будет работать везде:
<IMG NAME="someImage" SRC="image1.gif">
document["someImage"].src = "image2.gif";
Он меняет файл, содержимое которого отображается в элементе графического изображения, на другой. Для этого он присваивает иное значение свойству src объекта somelmage, предоставляющее доступ к атрибуту SRC тега <IMG>.
Чтобы получить доступ к самой Web-странице, воспользуйтесь системным объектом document. В частности, вы можете задать цвет гиперссылок, воспользовавшись свойством linkColor, предоставляющим доступ к значению атрибута LINK тега <BODY>:
document.linkColor = "#FF0000";
Оба рассмотренных нами объекта представляют собой соответственно видимый элемент страницы и саму страницу. Оба этих объекта были созданы с помощью тегов HTML. Теперь же мы начнем рассмотрение объектов, не являющихся элементами страницы. Это объекты Web-обозревателя, не видимые пользователю.
Объект document имеет внутренний объект location, предоставляющий доступ к интернет-адресу страницы и различным его частям. Доступен он через одноименное свойство. Воспользовавшись этим объектом, мы можем узнать, с какого интернет-адреса была загружена данная страница:
|
address = document.location.href;
…выяснить имя файла этой страницы:
filename = document.location.pathname;
…либо загрузить другую страницу:
document.location.href = "http://www.othersite.ru/otherpage.htm";
Объект window представляет текущее окно Web-обозревателя либо текущий фрейм, если страница загружена во фрейме. С помощью этого объекта вы можете, например, закрыть это окно:
window.close();
…или заменить текст, отображаемый в его строке статуса:
window.status = "Сейчас работает Web-сценарий!";
Объект window имеет внутренний объект navigator, предоставляющий доступ к самой программе Web-обозревателя. Доступен он через одноименное свойство. Воспользовавшись этим объектом, мы можем выяснить, например, версию программы:
version = window.navigator.appVersion;
…илиназвание:
programName = window.navigator.appName;
Объект window имеетвнутреннийобъект history, предоставляющийдоступксписку "истории" Web-обозревателя. Он доступен также через одноименное свойство. Воспользовавшись этим объектом, мы можем "путешествовать" по списку "истории" вперед:
window.history.forward();
…иназад:
window.history.back();
В объектной модели документа существует также еще несколько других объектов, но рассматриваться они не будут. Эти объекты применяются достаточно редко и в весьма специфических случаях. Если же вы все-таки захотите узнать побольше об объектной модели документа, обратитесь к соответствующей литературе.
Как пишутся Web-сценарии
Вот и закончился ликбез по JavaScript и объектной модели документов. Пришло время поговорить о том, как же пишутся Web-сценарии.
Прежде всего, выясним, как JavaScript-код помещается в HTML-код. Для этого служит парный тег <SCRIPT>…</SCRIPT>, внутри которого помещается код сценария. Вне этого тега помещать сценарий можно, но выполняться он не будет.
Вообще, все Web-сценарии можно разделить на два вида: выполняющиеся при загрузке страницы (загрузочные) и вызывающиеся в ответ на событие (обработчики событий). В зависимости от того, является сценарий загрузочным или обработчиком, различается способ его реализации.
Сценарии, выполняющиеся при загрузке страницы, представляют собой обычный код на JavaScript, помещенный втег<SCRIPT>. Он имеет такой вид:
|
<FORM ACTION="http://www.somesite.ru/cgi/prograra.pl">
<INPUT TYPE="text" NAME="txtDate">
<SCRIPT>
var d;
d = new Date();
document.forms[0].txtDate.value = d.toString();
</SCRIPT>
</FORM>
Этот сценарий помещает в поле ввода txtDate значение текущей даты. (О формах и элементах управления см. главу 16.) Для этого он вызывает свойство value, отображающее значение, введенное в поле ввода. Заметьте, что для именования поля ввода мы использовали атрибут NAME, поэтому вышеприведенный код будет работать также и в Navigator 4.x.
Этот сценарий будет выполняться непосредственно при загрузке страницы. Сначала Web-обозреватель загрузит и распознает тег <FORM>, потом – тег <INPUT>, а сразу за ним выполнит наш сценарий. Такие сценарии очень часто используются для занесения начальных значений в элементы управления и вообще для выполнения различных предустановок.
Мы поместили код сценария сразу же за тегом, задающим поле ввода, к которому мы обращаемся. Если бы мы поместили сценарий перед тегом, Web-обозреватель не смог бы найти объект txtDate, т. к. он еще не был бы создан, и выдал бы сообщение об ошибке. Имейте это в виду, когда будете писать загрузочные сценарии.
Если нужно, чтобы какие-либо предустановки выполнились перед тем, как будет загружен какой-либо "видимый" на странице HTML-код, выполняющий их сценарий помещается в секцию HTML-заголовка страницы (тег <HEAD>). В основном, это касается кода, выполняющего предустановки для других сценариев, чаще всего, обработчиков событий.
Теперь поговорим о сценарии обработчика событий. И рассмотрим пример такого обработчика:
<HEAD>
<SCRIPT>
function para_onClick() {
para.style.color = "#FF0000";
}
</SCRIPT>
</HEAD>
<BODY>
<P ID="para" STYLE="color: #0000FF" onClick="para_ondick();">Некийтекст.</P>
</BODY>
Это как раз пример сценария, помещаемого в секцию HTML-заголовка страницы. Он представляет собой функцию para_ondick, чей код меняет цвет текста абзаца para. Поместив сценарий в секцию HTML-заголовка, мы можем быть уверены, что Web-обозреватель обработает этот код перед тем, как будет загружена страница, и "отложит" определения функций в "долгий ящик", чтобы вызвать их впоследствии, при наступлении соответствующего события.
А теперь обратимся к нашему текстовому абзацу. Что видим? Нечто странное… Откуда-то взялся новый, не знакомый нам атрибут onclick. Что он делает?
Это не совсем атрибут. Вернее, совсем не атрибут, хотя и выглядит похоже. Таким способом в HTML к какому-либо событию, происходящему в элементе страницы, привязывается обработчик. Общий синтаксис такой "привязки" следующий:
<Имя события>="<Код сценария обработчика>"
В данном случае мы привязали вызов функции para_onclick в качестве обработчика к событию onclick, происходящему, когда пользователь щелкает мышью по этому абзацу.
|
Вообще, код этого обработчика столь мал, что его можно без всяких последствий поместить прямо в тег <р>:
<P ID="para" STYLE="color: #0000FF" onClick="para.style.color = #'FF0000';">Некийтекст.</P>
Таким образом, мы значительно уменьшим размер HTML-кода страницы, что нам совсем не помешает.
Используйте варианты поведения JavaScript в Adobe Dreamweaver, чтобы посетители могли менять оформление веб-страницы или запускать определенные задачи.
Поведение Adobe Dreamweaver помещает код JavaScript в документы, чтобы посетители могли менять оформление веб-страницы или запускать определенные задачи. Поведение — это комбинация события и действия, инициированного при возникновении этого события. На панели «Поведение» на страницу можно добавить поведение, определив действие и затем событие, которое инициирует это действие.
Примечание.
Код поведения — это клиентский код JavaScript, то есть код, который выполняется в браузерах, а не на серверах.
События — это, фактически, генерируемые браузерами сообщения о том, что посетитель страницы выполнил какое-то действие. Например, когда посетитель перемещает указатель над ссылкой, браузер генерирует для этой ссылки событие onMouseOver; затем браузер проверяет, нужно ли вызвать в ответ какой-либо код JavaScript (содержащийся в просматриваемой странице). Для разных элементов страницы существуют разные события; например, в большинстве браузеров события onMouseOver и onClick связаны со ссылками, а событие onLoad связано с изображениями и body документа.
Действие — это готовый код JavaScript для выполнения таких задач, как открытие окна браузера, показ или скрытие AP-элементов, воспроизведение звуков или остановка ролика Adobe Shockwave. Действия, предоставляемые продуктом Dreamweaver, обеспечивают максимальную совместимость с различными браузерами.
Если элементу страницы назначено поведение, то каждый раз, когда происходит данное событие для этого элемента, вызывается действие (код JavaScript), связанное с данным событием. (В разных браузерах одно и то же действие может вызываться разными событиями.) Например, если назначить ссылке действие «Вывод сообщения» и указать, что это действие будет вызываться событием onMouseOver, сообщение будет появляться каждый раз, когда кто-то поставит указатель мыши на ссылку.
Одно событие может инициировать несколько различных действий, порядок выполнения которых можно задать.
Dreamweaver предлагает около двух десятков действий. Другие действия можно найти на веб-сайте Exchange www.adobe.com/go/dreamweaver_exchange_ru и на сайтах других разработчиков. Хорошо владея языком JavaScript, можно создавать собственные действия.
Примечание.
Термины поведение и действие относятся к Dreamweaver, а не HTML. Действие с точки зрения браузера — это обычный фрагмент кода JavaScript.
|
|
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!