Слои и JavaScript
Теперь мы собираемся обращаться к слоям через JavaScript. Нам нужно начать с примера, где пользователь может нажать кнопку, чтобы скрыть и показать слой.
Сначала мы должны узнать, как слои представляются в JavaScript. Как обычно существует несколько путей. Лучше всего присвоить имя каждому слою. Если мы определяем уровень с
<layer ... name=myLayer> ... </layer>
мы можем обратиться к этому уровню через document.layers["myLayer"]. Согласно документации, предоставленной Netscape мы можем также писать document.myLayer, но это приводит к сбою моего броузера. Несомненно, это проблема preview-версии броузера и будет решена в финальной версии (в настоящее время я использую Netscape Navigator 4.0 PR3 в WinNT). Кажется, нет никаких проблем с document.layers["myLayer"]
- так что мы собираемся использовать этот вариант.
Вы также можете обращаться к слоям через целочисленный индекс. Чтобы обращаться к самому нижнему слою, Вы можете писать document.layers[0]. Пожалуйста обратите внимание, что индекс не тоже самое, что и свойство z- index. Если Вы имеете например два слоя, названные layer1 и layer2 у которых z-индексом являются числа 17 и 100, Вы можете обращаться к этим уровням через document.layers[0] и document.layers[1], а не через document.layers[17] и document.layers[100].
Существует несколько свойств слоя, которые могут быть изменены с помощью JavaScript. Следующий пример предоставляет кнопку, которая позволяет Вам скрывать и отображать один слой.(требуется Netscape Navigator 4.0 или выше!).
This text is inside a layer
Исходный текст выглядит так:
<html> <head> <script language="JavaScript"> <!-- hide
function showHide() { if (document.layers["myLayer"].visibility == "show") document.layers["myLayer"].visibility= "hide" else document.layers["myLayer"].visibility= "show"; }
// --> </script> </head> <body>
<ilayer name=myLayer visibility=show> <font size=+1 color="#0000ff"><i>This text is inside a layer</i></font> </ilayer>
<form> <input type="button" value="Show/Hide layer" onClick="showHide()"> </form>
</body> </html>
Кнопка вызывает функцию showHide(). Вы можете видеть, что эта функция обращается к свойству visibility
layer-объекта myLayer. Через присвоение "show"
или "hide" в document.layers["myLayer"].visibility
Вы можете показать или скрыть слой. Пожалуйста обратите внимание, что строки "show" и "hide"
не зарезервированные слова, то есть Вы не можете писать document.layers["myLayer"].visibility= show.
Я использовал <ilayer> тег вместо тега <layer>, потому что я хотел поместить слой в поток документа.