Шрифт:
Но сценарии в обоих фреймах должны явно ссылаться на конструктор
В качестве альтернативы сценарий в любом фрейме может определить собственные переменные для более удобного обращения к функции-конструктору:
В отличие от пользовательских классов, предопределенные классы, такие как
Тот факт, что каждый объект
Мы неоднократно отмечали, что в клиентском JavaScript объект Window является глобальным объектом. Однако если смотреть с технической точки зрения, это не так. Каждый раз, когда веб-броузер загружает содержимое в окно или фрейм, он должен создать новый контекст выполнения JavaScript, включая и новый глобальный объект. Но при наличии нескольких взаимодействующих окон или фреймов очень важно обеспечить сохранность ссылки на объект
Таким образом, в клиентском JavaScript имеется два объекта, играющих важную роль. Первый - это клиентский глобальный объект, который находится на вершине цепочки областей видимости и в котором определяются глобальные переменные и функции. Этот глобальный объект действительно замещается новым объектом, когда в окно или фрейм загружается новый документ. Второй объект, который мы называем объектом
Этот промежуточный объект ведет себя как настоящий глобальный объект, за исключением того, что живет гораздо дольше. Если бы вы могли сравнить эти два объекта, вы едва ли смогли бы отличить их. Однако на самом деле нет никакой возможности сослаться на настоящий клиентский глобальный объект. Глобальный объект находится на вершине цепочки областей видимости, но свойства
33
Этот последний пункт является небольшим отступлением от стандартов ES3 и ES5, но это необходимо для поддержки взаимодействующих контекстов выполнения в клиентском JavaScript.
15
Работа с документами
Клиентский JavaScript предназначен для того, чтобы превращать статические HTML-документы в интерактивные веб-приложения. Работа с содержимым вебстраниц - главное предназначение JavaScript. Данная глава является одной из наиболее важных в этой книге - здесь рассказывается о том, как это делается.
В главах 13 и 14 говорилось, что каждое окно, вкладка и фрейм веб-броузера представлено объектом
Эта глава начинается с описания базовой архитектуры DOM, а затем она расскажет:
• Как выбирать отдельные элементы документа.
• Как выполняется обход содержимого документа, представленного в виде дерева узлов, и как отыскивать в нем родительские, дочерние и братские элементы.
• Как читать и изменять значения атрибутов элементов документа.
• Как читать и изменять содержимое документа.
• Как изменять структуру документа, создавая, вставляя и удаляя узлы.
• Как работать с HTML-формами.