Скрипт написан под IE:
сам файл html:
Код:
<Html>
<Head>
<script language="JavaScript" src="menu.js">
</script>
<script language="javascript">
var cnt=0
var nodes=Array(10)
function init()
{
nodes[0]=new node(0,"","PHP")
nodes[1]=new node(1,"test.html","Hello")
nodes[2]=new node(1,"","submenu1")
nodes[3]=new node(3,"x.html","dd")
draw()
}
</script>
</Head>
<Body onLoad="init()">
<table id="main" cellSpacing=0 cellPadding=0>
</table>
</Body>
</Html>
А вот файл menu.js:
Код:
function node(parent_id,href,text)
{
window.cnt++
this.text=text
this.open=false
this.parent_id=parent_id
this.id=window.cnt
this.href=href
}
function status(n)
{
window.nodes[n].open=!window.nodes[n].open
var p_id=document.getElementById("tr"+window.nodes[n].id).firstChild
if(window.nodes[n].open) {
[b] p_id.innerHTML="<a href='javascript:status("+n+")'><img src='o_folder.bmp' border=0></img>"+window.nodes[n].text+"</a>" [/b]
drawchilds(window.nodes[n].id)
}
else {
[b] p_id.innerHTML="<a href='javascript:status("+n+")'><img src='c_folder.bmp' border=0></img>"+window.nodes[n].text+"</a>" [/b]
del_childs(window.nodes[n].id)
}
}
function draw()
{
var obj=document.getElementById("main").firstChild
for(var i=0;i<window.cnt;i++)
{
if(window.nodes[i].parent_id==0) {
var row=document.createElement("TR")
var col=document.createElement("TD")
row.id="tr"+window.nodes[i].id
col.innerHTML="<a href='javascript:status("+i+")'><img src='c_folder.bmp' border=0></img>"+window.nodes[i].text+"</a>"
row.appendChild(col)
obj.appendChild(row)
}
}
}
function drawchilds(parent_id)
{
var _parent=document.getElementById("tr"+parent_id)
var ih
for(i=0;i<window.cnt;i++)
{
if(window.nodes[i].parent_id==parent_id)
{
var row=document.createElement("tr")
var col=document.createElement("td")
row.id="tr"+window.nodes[i].id
if(window.nodes[i].href=="")
{
if(window.nodes[i].open) ih="<a href='javascript:status("+i+")'><img src='o_folder.bmp' border=0></img>"+window.nodes[i].text+"</a>"
else ih="<a href='javascript:status("+i+")'><img src='c_folder.bmp' border=0></img>"+window.nodes[i].text+"</a>"
}
else
ih="<a href="+window.nodes[i].href+">"+window.nodes[i].text+"</a>"
col.innerHTML=ih
row.appendChild(col)
_parent.appendChild(row)
}
}
}
function del_childs(parent_id)
{
var _parent=document.getElementById("tr"+parent_id)
for(i=0;i<window.cnt;i++)
{
if(window.nodes[i].parent_id==parent_id)
{
var child=document.getElementById("tr"+window.nodes[i].id)
_parent.removeChild(child)
}
}
}
Дохожу до открытия папки submenu1, смотрю ошибка, причем неопознанная, если убрать жирные строчки, то нет ошибки. Подскажите, где ошибка, я вроде debuger ом смотрел, все нормально, а ошибку выдает.