Альтернативное указание объекта в документе HTML

Интерфейсы для элементов модулей Style Sheet и Scripting

Для элемента style модуля Style Sheet определен интерфейс HTMLStyleElement со следующими основными свойствами:

· type – значение атрибута type;

· media – значение атрибута media;

· disabled – выключение (true) или включение (false) таблицы стилей.

Использование стилей в DOM будет подробнее рассмотрено в 4.5.8.

 

Для элемента script модуля Script определен интерфейс HTMLScriptElement со следующими основными свойствами:

· type – значение атрибута type;

· src – значение атрибута src;

· charset – значение атрибута charset;

· text – содержимое контейнера как текстовая строка.

Реально эти свойства доступны только для чтения. Содержимое контейнера <script>…</script>с помощью свойства text можно изменить только в Web-браузерах Internet Explorer и Opera, а содержимое свойства src нельзя изменить ни в одном Web-браузере.

Помимо доступа к элементам документа HTML с помощью индексов, методов getElementsByTagName(), getElementById() и getElementsByName(), можно также использовать альтернативную форму записи, принятую в объектно-ориентированных языках программирования. Для этой формы записи указывается имя объекта (значение его атрибута id), а затем имя свойства или обращение к методу. Эти два компонента отделяются друг от друга символом ".", например:

blocksImage01.src

Однако таким обращением следует пользоваться осторожно, поскольку оно приводит к ошибке в Firefox. Для Firefox можно было бы добавить перед обращением к объекту предложение:

blocksImage01 = document.getElementById("blocksImage01");

однако это предложение вызывает ошибку в Internet Explorer, поскольку объект blocksImage01 в нем уже существует (в остальных Web-браузерах таких проблем не возникает).

 

 

Пример 4.5.20. Использование альтернативного указания объекта:

Для фрагмента документа HTML

<ul id="studentList">Список студентов

<li id="Ivanov">Иванов Иван Иванович</li>

<li id="Petrov">Петров Петр Петрович</li>

<li id="Sidorov">Сидоров Сидор Сидорович</li>

</ul>

задан следующий фрагмент сценария:

// Получение элемента с id="Petrov"

// (только в Firefox)

Petrov = document.getElementById("Petrov");

// Вывод элемента списка с id="Petrov"

alert("Petrov='" + Petrov.firstChild.nodeValue + "'");

// Замена текстового содержимого

// элемента списка с id="Petrov"

Petrov.firstChild.nodeValue = "Николаев Николай Николаевич";

// Замена значения свойства id

// для элемента списка с id="Petrov"

Petrov.id = "Nikolaev";

// Получение элемента с id="Nikolaev"

// (только в Firefox)

Nikolaev = document.getElementById("Nikolaev");

// Вывод элемента списка с id="Nikolaevv"

alert("Nikolaev='" + Nikolaev.firstChild.nodeValue + "'");

Вывод Web-страницы для этого сценария будет иметь следующий вид: