|
|
автор: elenaki (14.10.2004 в 10:15) |
|
|
для: Igorek
(13.10.2004 в 21:00)
| | спасибо, ребята. а уж было плюнула на это дело. ну кто сейчас пользуется Нетскейпом?
у нас по статистике чуть больше одного процента не набирается таких ... смельчаков...
сейчас все работает работает. в Опере не проверяла, она у нас на 18-м месте, один клик
за месяц. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(13.10.2004 в 20:48)
| | Да, забыл про комментарий. Он тут должен быть. | |
|
|
|
|
|
|
|
для: Igorek
(13.10.2004 в 20:08)
| | Супер! Работает везде.
Проверил в IE 5, Opera 7.23, Netscape 6, Mozilla FireFox 0.93
Только в Opere глючило пока не поставил внизу кода завершение комментария -->.
function hide(obj) {
var theObj = getObject(obj)
theObj.visibility = "hidden"
}
-->
</script>
|
| |
|
|
|
|
|
|
|
для: elenaki
(13.10.2004 в 14:58)
| | Вот! Вроде нашел. По идее должно работать во всех броузерах, но я тестил только в IE.
<script language="JavaScript">
<!--
function getObject(obj) {
var theObj
if (document.layers) {
if (typeof obj == "string") {
return document.layers[obj]
} else {
return obj
}
}
if (document.all) {
if (typeof obj == "string") {
return document.all(obj).style
} else {
return obj.style
}
}
if (document.getElementById) {
if (typeof obj == "string") {
return document.getElementById(obj).style
} else {
return obj.style
}
}
return null
}
// set the visibility of an object to visible
function show(obj) {
var theObj = getObject(obj)
theObj.visibility = "visible"
}
// set the visibility of an object to hidden
function hide(obj) {
var theObj = getObject(obj)
theObj.visibility = "hidden"
}
</script>
|
параметр obj - это имя слоя. | |
|
|
|
|
автор: elenaki (13.10.2004 в 14:58) |
|
| искала много. нашла вот что:
Для NN мы используем обозначение слоев - layers, для IE - all, также для IE, для обозначения стиля используется - style, а в NN мы ничего не ставим
Для оптимальной работы кода мы создадим две переменные и поставим проверку на имя браузера:
if (navigator.appName == "Netscape")
{
var layerRef=".layers.";
var styleRef="";
}
else
{
var layerRef=".all.";
var styleRef=".style";
}
Теперь для NN и IE у нас есть переменные содержащие нужные обозначения и мы воспользуемся командой eval, которая как бы "склеивает" строки. Вот как будет это выглядеть:
eval("document" + layerRef +"def_sloy" + styleRef + ".visibility = 'hidden'");
Теперь пишем нужное количество строк, показывающих 'visible' и убирающих 'hidden' слои. Объединяем их в функции относительно каждого слоя. Функции должны срабатывать на ссылках по действию onclick="ИМЯ_ФУНКЦИИ", href=#.
|
не работает.
потом это -
В MSIE 4 и DOM1-браузерах доступ к свойству осуществляется через объект .style. Пример (используется уже определенная нами функция вызова слоя):
// спрятать слой в MSIE4 и DOM1-браузерах
layer("mylayer").style.visibility="hidden"
В Netscape 4 у слоя нет поля style, доступ к свойствам осуществляется непосредственно:
// спрятать слой в Netscape 4
layer("mylayer").visibility="hide"
Можно заметить, что даже значение, которое нужно присвоить свойству .visibility, разное у разных браузеров. Хотя более новые версии 4-ого Netscape поддерживают не только "show"/"hide", но и "visible"/"hidden", как и MSIE.
Для доступа к стилям можно порекомендовать такую функцию:
function layerStyle(layerObject){
if(layerObject.style) return layerObject.style //доступ через style
return layerObject //доступ без style
}
Вместе с которой наш пример сократится до layerStyle(layer("mylayer")).visibility=isNetscape4?"hide":"hidden"
|
не работает.
всего-то одна строка кода!
function show()
{ if (navigator.appName == "Netscape")
{ document.layers.info.visibility = "show";}
else
{ document.all.info.style.visibility = "vizible";}
}
function kill()
{if (navigator.appName == "Netscape")
{ document.layers.info.visibility = "hide";}
else
{ document.all.info.style.visibility = "hidden";}
}
|
IE ругается: Could not get the visibility property. Inavlid argument.
я сам уже почти инвалид. на голову. помогите! в чем дело? ведь kill() работает (если слой сделать изначально видимым) | |
|
|
|
|