Не работает раскрывающийся список в мозиле, в ИЕ или Опере все работает, подскажите пожалуйста как его исправить.

Вот сам скрипт:

<script language=JavaScript>
function clickHandler() {
var strelka, targetId, srcElement, targetElement;
srcElement = window.event.srcElement;
if (srcElement.className == "Outline") { targetId = srcElement.id + "details"; strelka = srcElement.id + "str"; targetElement = document.all(targetId);
if (targetElement.style.display == "none") { targetElement.style.display = ""; document.all(strelka).src="jpg/treugdown.gif"; }
    else { targetElement.style.display = "none"; document.all(strelka).src="jpg/treug.gif"; } }}
document.onclick = clickHandler; </script>
<table width="240" height="265" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td height="37" colspan="2" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td width="14" valign="top">
</td> 
    <td width="226" valign="top">
    <b id="Out1" class="Outline" style="cursor: hand;"><img id=Out1str src="jpg/treug.gif" width="7" height="10">&nbspДЕЛОВАЯ ПОЛИГРАФИЯ</b>
<div id="Out1details" style="display:None; position:relative; left:36px; top: 0px;">
<a href="menu11.shtml">ВИЗИТКИ КОРПОРАТИВНЫЕ</a><br>
<a href="menu12.shtml">ВИЗИТКИ ПЕРСОНАЛЬНЫЕ</a><br>
<a href="menu13.shtml">КОНВЕРТЫ</a><br>
<a href="menu14.shtml">БЛАНКИ</a><br>
<a href="menu15.shtml">ПРОЧЕЕ</a></div><img src="jpg/tochki.gif" width="207" height="12"><br>
   
    <b id="Out2" class="Outline" style="cursor: hand;"><img id=Out2str src="jpg/treug.gif" width="7" height="10">&nbspРЕКЛАМНАЯ ПОЛИГРАФИЯ</b>
<div id="Out2details" style="display:None; position:relative; left:36px; top: 0px;">
<a href="menu21.shtml">ЛИСТОВКИ</a><br>
<a href="menu22.shtml">БУКЛЕТЫ</a><br>
<a href="menu23.shtml">ФЛАЕРСЫ</a><br>
<a href="menu24.shtml">КАТАЛОГИ</a><br>
<a href="menu25.shtml">НАКЛЕЙКИ</a><br>
<a href="menu26.shtml">ПРОЧЕЕ</a></div><img src="jpg/tochki.gif" width="207" height="12"><br>

........................ и так далее

Он это меню видит как обычный текст, тоесть не работает даже style="cursor: hand;".

Ну может хотя бы теги <html> и <body> для приличия вставите?

Ну это обрывок целой страницы, само собой они там есть, но зачем их здесь то писать? Вот кстати сайт на котором это меню не работает в мозиле www.3s-print.ru

http://developer.mozilla.org/en/docs/Migrate_apps_from_Internet_Explorer_to_Mozilla

а ещё, говорят, в fx есть консоль ошибок...

Там все на англ., и нужно время чтобы разобраться.... а его как раз и нету, можете подсказать по этому скрипту поконкретней? Он вроде не большой...

Shunsui

"str"; targetElement = document.all(targetId);
if (targetElement.style.display == "none") { targetElement.style.display = ""; document.all(strelka).src="jpg/treugdown.gif"; }

Не то что бы я разработчик, но сразу могу сказать что document.all - чисто IE-шное изобретение.
P.S. В русской версии Firefox консоль ошибок в основном говорит по русски.

Используйте вместо document.all("identificator")            document.getElementById("identificator")

Выделить код

Код:

srcElement = window.event.srcElement;

window.event - вот это только IE

Благодарю. А на что windows.event исправить? на aEvent? и srcElemnt вроде ИЕ только использует...

В Gecko вместо window.event в функцию передается объект event....

Для создания кроссбраузерного скрипта имеет смысл написать:

Выделить код

Код:

var srcElement = event.srcElement ? event.srcElement : event.target;
Выделить код

Код:

function f (e) {
    var target= e.target || event.srcElement;
    alert(target.tagName);
};

style="cursor: hand;" - тоже чисто IE-шная фишка. Правильно style="cursor: pointer;"

Получилась вот такая вещь

Выделить код

Код:

<script language=JavaScript> function clickHandler() { 
var strelka, targetId, srcElement, targetElement; 
srcElement = event.srcElement ? event.srcElement : event.target; 
if (srcElement.className == "Outline") 
	{ 
	targetId = srcElement.id + "details"; 
	strelka = srcElement.id + "str"; 
	targetElement = document.getElementById(targetId); 
	if (targetElement.style.display == "none") 
		{ 
		targetElement.style.display = ""; 
		document.getElementById(strelka).src="jpg/treugdown.gif"; 
		} 
		else 
		{ 
			targetElement.style.display = "none"; 
			document.getElementById(strelka).src="jpg/treug.gif"; 
		} 
	}
} 
document.onclick = clickHandler; </script>
<table width="240" height="265" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td height="37" colspan="2" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td width="14" valign="top">
</td>  
    <td width="226" valign="top">
	<b id="Out1" class="Outline" style="cursor: pointer;"><img id=Out1str src="jpg/treug.gif" width="7" height="10">&nbspДЕЛОВАЯ ПОЛИГРАФИЯ</b>
<div id="Out1details" style="display:None; position:relative; left:36px; top: 0px;">
<a href="menu11.shtml">ВИЗИТКИ КОРПОРАТИВНЫЕ</a><br>
<a href="menu12.shtml">ВИЗИТКИ ПЕРСОНАЛЬНЫЕ</a><br>
<a href="menu13.shtml">КОНВЕРТЫ</a><br>
<a href="menu14.shtml">БЛАНКИ</a><br>
<a href="menu15.shtml">ПРОЧЕЕ</a></div><img src="jpg/tochki.gif" width="207" height="12"><br>

ИЕ при этом отлично работает, но Мозила всеравно отказывается раскрывать слои.

Всё уже было разжевано. В который раз уже говорится - в ФФ есть консоль ошибок, смотрим туда в первую очередь.

Выделить код

Код:

<script type="text/javascript">
function clickHandler(e)
{
	var strelka, targetId, srcElement, targetElement; 
	srcElement = e.srcElement ? e.srcElement : e.target; 
	if (srcElement.className == "Outline") 
	{ 
    	targetId = srcElement.id + "details"; 
	    strelka = srcElement.id + "str"; 
    	targetElement = document.getElementById(targetId); 
	    if (targetElement.style.display == "none") 
        { 
    	    targetElement.style.display = ""; 
        	document.getElementById(strelka).src="jpg/treugdown.gif"; 
        } 
        else 
        { 
            targetElement.style.display = "none"; 
            document.getElementById(strelka).src="jpg/treug.gif"; 
        } 
    }
}
</script>
<table width="240" height="265" border="0" cellpadding="0" cellspacing="0">
<tr><td height="37" colspan="2" valign="top">&nbsp;</td></tr>
<tr><td width="14" valign="top"></td>  
<td width="226" valign="top">
	<b id="Out1" class="Outline" style="cursor: pointer;" onclick="clickHandler(event)"><img id=Out1str src="jpg/treug.gif" width="7" height="10">&nbspДЕЛОВАЯ ПОЛИГРАФИЯ</b>
	<div id="Out1details" style="display:None; position:relative; left:36px; top: 0px;">
	<a href="menu11.shtml">ВИЗИТКИ КОРПОРАТИВНЫЕ</a><br>
	<a href="menu12.shtml">ВИЗИТКИ ПЕРСОНАЛЬНЫЕ</a><br>
	<a href="menu13.shtml">КОНВЕРТЫ</a><br>
	<a href="menu14.shtml">БЛАНКИ</a><br>
	<a href="menu15.shtml">ПРОЧЕЕ</a></div><img src="jpg/tochki.gif" width="207" height="12"><br>
</td>
</tr>
</table>

Спасибо! все работает

Ребята, помогите!
Аналогичная проблема, но не хватает мозгов, чтобы поправить код.

скрытый текст
<style type=text/css>
a{font-family: Arial; font-weight: bold;}
#foldheader{cursor:hand;}
</style>

<script language="JavaScript">
function change()
{ if(!document.all) return
if (event.srcElement.id=="foldheader")
{ var srcIndex = event.srcElement.sourceIndex
var nested = document.all[srcIndex+1]
if (nested.style.display=="none") {nested.style.display=''} else {nested.style.display="none"} } }
document.onclick=change
</script>

<font size="2">
<a href="tools/index.htm" id="foldheader" style="color=#800000;">ЗАПЧАСТИ</a>
<ul id="foldinglist" style="display:none">

<font size="2">
<a href="tools/krep.htm" id="foldheader" style="color=#000080;">Крепеж</a></font>
<ul id="foldinglist" style="display:none"><font size="1">
<a href="tools/krep.htm#Samor" style="color=#008000;">Саморезы</a><hr size="1" style="margin-top: -5;">
<a href="tools/krep.htm#Vint" style="color=#008000;">Винты</a><hr size="1" style="margin-top: -5;">
<a href="tools/krep.htm#Razn" style="color=#008000;">Разное</a>
</ul></font><hr size="1" style="margin-top: -5;">

Три дня "коту под хвост", не получается. Помогите, пожалуйста.

Копипаст головного мозга.
Выкинуть и переписать с нуля, желательно понимая каждую строчку.

Копипаст головного мозга.
Выкинуть и переписать с нуля, желательно понимая каждую строчку.

Как раз, мозгов и не хватает. Поэтому, и обращаюсь за помощью к владеющим оными.

Может, имеется готовый скрипт. Только, желательно не трогать код самого каталога, т.к. он очень большой. Тотальную правку я не потяну.

Спасибо за понимание