Знатокам javaScript
вместо document писать top.frames[i]
Я добавил еще onLoad="showLayer" в боди-тэг для фрейма со слоем, но все равно.
(офтоп) хм. GetElementById ищет элемент по ид (по стандарту). Так что (помимо/вместо) нейма у фреймов вставляй id="frame1" и т.д. Ну это если ты хочешь совместимости в разных браузерах.
frames['framename'].document.getElementById('layername') должен работать.
А вообще юзай firefox+firebug для отладки js
Всем большое спасибо.
Как сделать так, чтобы этот слой держал видимость несколько секунд и затем опять становился невидимым.
setTimeout
function showLayer(layerid) {
var layer = document.getElementById(layerid);
setTimeout('layer.style.visibility = "visible" ', 4000);
}
и альтернативно для ссылки:
onClick = "setTimeout('showLayer("MyLayer")', 1000)"
Но ни 1, ни 2 вариант не работают. Наверное в чем-то ошибка.
onClick = "setTimeout('showLayer("MyLayer")', 1000)"такое не проканает изза кавычек
и без кавычек делал .....
Видимо, предлагается их заэскейпить.
Оставить комментарий
BULKA8
Есть код:<html><head><title>Page</title></head><body>
<script>
function showLayer(layerid) {
var layer = document.getElementById(layerid);
layer.style.visibility = "visible";
}
</script>
<div id="MyLayer" style="position: absolute; width: 100px; height: 85px; z-index: 2; left: 211px; top: 23px; visibility:hidden; background-color:#FFAEAE">
</div>
<a href="#" onClick = "showLayer('MyLayer');">MyLink</a>
</body></html>
Кликаешь по ссылке и слой становится видимым.
А как написать код, чтобы ссылка и слой были на разных фреймах?
<frameset rows="50,50">
<frame src="frame1.html" name="first" >
<frame src="frame2.html" name="second" >
</frameset>