Страницы: 1
Здравствуйте. Вынужден обратиться за помощью из-за следующей проблемы: При включенной поддержке ЯваСкрипт меню хорошо работает в IE 6-7, Opera 9, но упорно отказывается открываться/закрываться в Mozilla Firefox 2.... В консоли ошибок жалуется на window.event (в 9 строчке скрипта). Пробовал сам чего-то шаманить - не получилось.
Код скрипта:
<SCRIPT language=JavaScript> var img1 = new Image(); img1.src = "plus.gif"; var img2 = new Image(); img2.src = "minus.gif"; function doOutline() { var srcId, srcElement, targetElement; srcElement = window.event.srcElement; if (srcElement.className.toUpperCase() == "LEVEL1" || srcElement.className.toUpperCase() == "FAQ") { srcID = srcElement.id.substr(0, srcElement.id.length-1); targetElement = document.getElementById(srcID + "s"); srcElement = document.getElementById(srcID + "i"); if (targetElement.style.display == "none") { targetElement.style.display = ""; if (srcElement.className == "LEVEL1") srcElement.src = img2.src; } else { targetElement.style.display = "none"; if (srcElement.className == "LEVEL1") srcElement.src = img1.src; } } } document.onclick = doOutline; </SCRIPT>
HTML-код меню:
<IMG border=0 src="mstr1.gif"> <A class=Level2 href="index.php"><B>Главная</B></A><BR> <IMG border=0 src="mstr1.gif"> <A class=Level2 href="/forum/index.php" target="_blank"><B>Форум</B></A><BR> <b><A class=Level1 id=OUT0t><IMG border=0 class=LEVEL1 id=OUT0i src="plus.gif" style="cursor: pointer;"> Футбол</A></b><BR> <DIV id=OUT0s style="DISPLAY: none"> <IMG src="none.gif" width="9" height="9"> <A class=Level2 href="index.php?do=cat&category=main"><b>Новости</b></A><BR> <IMG src="none.gif" width="9" height="9"> <A class=Level2 href="index.php?do=cat&category=inter"><b>Интервью</b></A><BR> <IMG src="none.gif"><A class=Level2 href="index.php?do=cat&category=trans"><b>Трансферы</b></b></A> <img src="http://football.net.sumy.ua/templates/Art/images/New.gif" align="middle"><BR></DIV> <b><A class=Level1 id=OUT1t><IMG border=0 class=LEVEL1 id=OUT1i src="plus.gif" style="cursor: pointer;"> Матчи</A></b><BR> <DIV id=OUT1s style="DISPLAY: none"> <IMG src="none.gif"> <A class=Level2 href="index.php?do=cat&category=pre"><b>Анонсы матчей</b></A> <img src="http://football.net.sumy.ua/templates/Art/images/New.gif" align="middle"><BR> <IMG src="none.gif"> <A class=Level2 href="index.php?do=cat&category=match"><b>Обзоры матчей</b></A><BR> <IMG src="none.gif"> <A class=Level2 href="index.php?do=static&page=live"><b>Онлайн-результаты</b></A><BR></DIV> <b><A class=Level1 id=OUT2t><IMG border=0 class=LEVEL1 id=OUT2i src="plus.gif" style="cursor: pointer;"> Медиа</A></b><BR> <DIV id=OUT2s style="DISPLAY: none"> <IMG src="none.gif"> <A class=Level2 href="index.php?do=cat&category=foto"><b>Фото</b></A> <img src="http://football.net.sumy.ua/templates/Art/images/New.gif" align="middle"><BR> <IMG src="none.gif"> <A class=Level2 href="index.php?do=cat&category=video"><b>Видео</b></A><BR> <IMG src="none.gif"> <A class=Level2 href="index.php?do=cat&category=rasp"><b>Юмор</b></A><BR></DIV> <b><A class=Level1 id=OUT3t><IMG border=0 class=LEVEL1 id=OUT3i src="plus.gif" style="cursor: pointer;"> Информация</A></b><BR> <DIV id=OUT3s style="DISPLAY: none"> <IMG src="none.gif"> <A class=Level2 href="index.php?do=cat&category=hist"><b>Истории</b></A><BR> <IMG src="none.gif"> <A class=Level2 href="index.php?do=cat&category=biogr"><b>Биографии</b></A><BR> <IMG src="none.gif"> <A class=Level2 href="index.php?do=static&page=ratclubs"><b>Рейтинг клубов</b></A><BR> <IMG src="none.gif"> <A class=Level2 href="index.php?do=static&page=ratcountries"><b>Рейтинг стран</b></A><BR> <IMG border=0 src="none.gif"> <A class=Level2 href="index.php?do=cat&category=other"><B>Разное</B></A><BR> <IMG border=0 src="none.gif"> <A class=Level2 href="index.php?do=cat&category=links"><B>Ссылки</B></A><BR></DIV> <IMG border=0 src="none.gif"> <A class=Level2 href="index.php?do=cat&category=mini"><B>Минифутбол</B></A><BR> <IMG border=0 src="none.gif"> <A class=Level2 href="index.php?do=cat&category=virt"><B>Киберспорт</B></A><BR> <IMG border=0 src="mstr2.gif"> <A class=Level2 href="index.php?do=sms"><B>Отправить SMS</B></A><BR> <IMG border=0 src="mstr2.gif"> <A class=Level2 href="index.php?do=tv-program"><B>Телепрограмма</B></A> <img src="http://football.net.sumy.ua/templates/Art/images/New.gif" align="middle"><BR> <IMG border=0 src="mstr2.gif"> <A class=Level2 href="index.php?do=arcade"><B>Футбол flash-игры</B></A> <img src="http://football.net.sumy.ua/templates/Art/images/New.gif" align="middle"><BR> <IMG border=0 src="mstr2.gif"> <A class=Level2 href="index.php?do=faq"><B>Конференции</B></A> <img src="http://football.net.sumy.ua/templates/Art/images/New.gif" align="middle"><BR> <b><A class=Level1 id=OUT4t><IMG border=0 class=LEVEL1 id=OUT4i src="plus.gif" style="cursor: pointer;"> Помощь</A></b><BR> <DIV id=OUT4s style="DISPLAY: none"> <IMG src="mstr1.gif"> <A class=Level2 href="index.php?newsid=6"><b>Как добавить новость</b></b></A><BR> <IMG src="mstr1.gif" width="9" height="9"> <A class=Level2 href="index.php?do=static&page=dc"><b>Помощь по DC++</b></A><BR> <IMG src="mstr1.gif" width="9" height="9"> <A class=Level2 href="index.php?do=static&page=tor"><b>Помощь по Torrent</b></A><BR></DIV> <b><A class=Level1 id=OUT5t><IMG border=0 class=LEVEL1 id=OUT5i src="plus.gif" style="cursor: pointer;"> О Портале</A></b><BR> <DIV id=OUT5s style="DISPLAY: none"> <IMG src="mstr1.gif" width="9" height="9"> <A class=Level2 href="index.php?do=static&page=admin"><b>Наша команда</b></A><BR> <IMG src="mstr1.gif" width="9" height="9"> <A class=Level2 href="index.php?newsid=272"><b>Правила портала</b></A><BR> <IMG src="mstr1.gif"> <A class=Level2 href="index.php?do=static&page=disclaimer"><b>Disclaimer</b></b></A><BR></DIV><br /> <a href="index.php?do=static&page=javascipt">Не работает меню?</a>
Заранее спасибо за помощь!
Отредактировано bugger (08-06-2008 18:48:03)
Отсутствует
function doOutline(e) { e = e || window.event; var tar = e.target || e.srcElement; // ... } document.onclick = doOutline;
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Так?..
<SCRIPT language=JavaScript> var img1 = new Image(); img1.src = "plus.gif"; var img2 = new Image(); img2.src = "minus.gif"; function doOutline(e) { e = e || window.event; var tar = e.target || e.srcElement; var srcId, srcElement, targetElement; srcElement = window.event.srcElement; if (srcElement.className.toUpperCase() == "LEVEL1" || srcElement.className.toUpperCase() == "FAQ") { srcID = srcElement.id.substr(0, srcElement.id.length-1); targetElement = document.getElementById(srcID + "s"); srcElement = document.getElementById(srcID + "i"); if (targetElement.style.display == "none") { targetElement.style.display = ""; if (srcElement.className == "LEVEL1") srcElement.src = img2.src; } else { targetElement.style.display = "none"; if (srcElement.className == "LEVEL1") srcElement.src = img1.src; } } } document.onclick = doOutline; </SCRIPT>
Отсутствует
Так?..
Эммм... Я суть показывал (в код особо не вникал).
А суть в том, что в Firefox нет window.event, а объект event непосредственно передается в функцию в виде аргумента. И у event нет свойства srcElement, но есть event.target
function doOutline(e) { e = e || window.event; var srcId, srcElement, targetElement; srcElement = e.target || e.srcElement; if (srcElement.className.toUpperCase() == "LEVEL1" || srcElement.className.toUpperCase() == "FAQ") // ... } document.onclick = doOutline;
И не проще ли найти реализацию поновее
Отредактировано Infocatcher (08-06-2008 20:15:52)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Страницы: 1