求懂javascript的高手(200分)

Y

yobdrow

Unregistered / Unconfirmed
GUEST, unregistred user!
以下代码在netscape里怎么运行不了
<html>
<head>
<title>树形菜单(一)</title>
<style type="text/css">
<!--
body { font-family: "宋体";
font-size: 9pt;
margin-top: 0px;
margin-left: 4px;
margin-right: 0px}
A { COLOR: black;
FONT-SIZE: 9pt;
FONT-WEIGHT: 400;
TEXT-DECORATION: none }
A:hover { COLOR: red;
FONT-SIZE: 9pt;
FONT-WEIGHT: 400;
TEXT-DECORATION: underline }
a:active { font: 9pt "宋体";
cursor: hand;
color: #FF0033 }
--></style>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
<script language="JavaScript1.2">
scores = new Array(20);var numTotal=0;NS4 = (document.layers) ? 1 : 0;IE4 = (document.all) ? 1 : 0;ver4 = (NS4 || IE4) ? 1 : 0;
if (ver4) { with (document) { write("<STYLE TYPE='text/css'>");
if (NS4) { write(".parent {position:absolute;
visibility:visible}");
write(".child {position:absolute;
visibility:visible}");
write(".regular {position:absolute;
visibility:visible}") } else
{ write(".child {display:none}") } write("</STYLE>");
}}function getIndex(el) { ind = null;
for (i=0;
i<document.layers.length;
i++) { whichEl =do
cument.layers;
if (whichEl.id == el) { ind = i;
break;
} } return ind;}function arrange() { nextY =do
cument.layers[firstInd].pageY +document.layers[firstInd].document.height;
for (i=firstInd+1;
i<document.layers.length;
i++) { whichEl =do
cument.layers;
if (whichEl.visibility != "hide") { whichEl.pageY = nextY;
nextY += whichEl.document.height;
} }}function initIt(){ if (!ver4) return;
if (NS4) { for (i=0;
i<document.layers.length;
i++) { whichEl =do
cument.layers;
if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
} arrange();
} else
{ divColl =do
cument.all.tags("DIV");
for (i=0;
i<divColl.length;
i++) { whichEl = divColl(i);
if (whichEl.className == "child") whichEl.style.display = "none";
} }}function expandIt(el) { if (!ver4) return;
if (IE4) { whichEl1 = eval(el + "Child"); for(i=1;i<=numTotal;i++){ whichEl = eval(scores + "Child"); if(whichEl!=whichEl1) { whichEl.style.display = "none"; } } whichEl1 = eval(el + "Child");
if (whichEl1.style.display == "none") { whichEl1.style.display = "block";
} else
{ whichEl1.style.display = "none";
} } else
{ whichEl = eval("document." + el + "Child"); for(i=1;i<=numTotal;i++){ whichEl = eval("document." + scores + "Child"); if(whichEl!=whichEl1) { whichEl.visibility = "hide"; } } if (whichEl.visibility == "hide") { whichEl.visibility = "show";
} else
{ whichEl.visibility = "hide";
} arrange();
}}onload = initIt;
</script>
</head>
<body bgcolor="#caeeff">
<br>
<br>
<center><font color=red face="隶书" size=6>树形菜单(一)</font></center>
<br>
<center>
<table border=5 bordercolor=blue borderlight=green>
<tr><td align=center><font size=5 color=red face="Arial, Helvetica, sans-serif"><strong>下面为脚本显示区</strong></font></td></tr><tr><td align=left><div id='KB1Parent' class='parent'><a href="#" onClick="expandIt('KB1');
return false">
时间日期类</a></div><div id='KB1Child' class='child'>
<a href='time1.htm' target='_target'> 任意位置显示时钟</a><br>
<a href='time2.htm' target='_target'> 倒计时代码生成器</a><br>
<a href='time3.htm' target='_target'> 八种风格时间显示</a><br>
<a href='time8.htm' target='_target'> 全中文日期显示</a></div>
<div id='KB2Parent' class='parent'><a href="#" onClick="expandIt('KB2');
return false">
页面导航类</a></div><div id='KB2Child' class='child'>
<a href='dao1.htm' target='_target'> 显示站点信息导航</a><br>
<a href='dao9.htm' target='_target'> 友情链接导航框</a><br>
<a href='dao10.htm' target='_target'> 目录式导航菜单</a><br>
<a href='dao11.htm' target='_target'> 重要信息说明脚本</a>
</div>
<div id='KB3Parent' class='parent'><a href="#" onClick="expandIt('KB3');
return false">
页面背景类</a></div><div id='KB3Child' class='child'>
<a href='back1.htm' target='_target'> 背景向下移动</a><br>
<a href='back2.htm' target='_target'> 背景不停变换色彩</a><br>
<a href='back9.htm' target='_target'> 页面转换特效</a></div>
<div id='KB4Parent' class='parent'><a href="#" onClick="expandIt('KB4');
return false">
页面特效类</a></div><div id='KB4Child' class='child'>
<a href='ye1.htm' target='_target'> 字符从空中掉下来</a><br>
<a href='ye17.htm' target='_target'> 鼠标响应文字变色</a>
</div>
<div id='KB5Parent' class='parent'><a href="#" onClick="expandIt('KB5');
return false">
图形图象类</a></div><div id='KB5Child' class='child'>
<a href='picture1.htm' target='_target'> 禁止图片下载</a><br>
<a href='picture11.htm' target='_target'> 图形选择脚本</a><br>
<a href='picture12.htm' target='_target'> 图片翻滚导航</a><br>
<a href='picture13.htm' target='_target'> 图片翻滚导航</a>
</div>
<div id='KB6Parent' class='parent'><a href="#" onClick="expandIt('KB6');
return false">
按钮特效类</a></div><div id='KB6Child' class='child'>
<a href='an2.htm' target='_target'> 跑马灯式链接说明</a><br>
<a href='an7.htm' target='_target'> 按顺序点击链接</a></div>
<div id='KB7Parent' class='parent'><a href="#" onClick="expandIt('KB7');
return false">
鼠标事件类</a></div><div id='KB7Child' class='child'>
<a href='shu1.htm' target='_target'> 图片跟随鼠标</a><br>
<a href='shu5.htm' target='_target'> 禁用右键自动导航</a><br>
<a href='shu6.htm' target='_target'> 鼠标激活警告框</a>
</div>
<div id='KB8Parent' class='parent'><a href="#" onClick="expandIt('KB8');
return false">
Cookie脚本</a></div><div id='KB8Child' class='child'>
<a href='cook1.htm' target='_target'> 随登陆次数变提示</a><br>
<a href='cook8.htm' target='_target'> 检测IE去过站点</a><br>
<a href='cook9.htm' target='_target'> 离开时显示信息</a><br>
<a href='cook10.htm' target='_target'> 弹出窗口自动关闭</a><br>
<a href='cook11.htm' target='_target'> 离开页面弹出窗口</a><br>
<a href='cook12.htm' target='_target'> 进入时显示信息</a></div>
<div id='KB9Parent' class='parent'><a href="#" onClick="expandIt('KB9');
return false">
文本特效类</a></div><div id='KB9Child' class='child'>
<a href='text1.htm' target='_target'> 随机信息显示</a><br>
<a href='ye9.htm' target='_target'> 文字颜色渐变脚本</a><br>
<a href='ye5.htm' target='_target'> 文本自动输出</a></div>
<div id='KB10Parent' class='parent'><a href="#" onClick="expandIt('KB10');
return false">
状态栏特效</a></div><div id='KB10Child' class='child'>
<a href='ye8.htm' target='_target'> 状态栏跑马灯脚本</a><br>
<a href='zhuang1.htm' target='_target'> 文字从右弹出</a><br>
<a href='zhuang8.htm' target='_blank'> title变化弹出</a></div>
<div id='KB11Parent' class='parent'><a href="#" onClick="expandIt('KB11');
return false">
密 &amp;nbsp;码 &amp;nbsp;类</a></div><div id='KB11Child' class='child'>
<a href='password1.htm' target='_target'> 控制他人进入页面</a><br>
<a href='password3.htm' target='_target'> 用来实现会员制度</a><br>
<a href='password4.htm' target='_target'> 密码保护相应页面</a><br><a href='password5.htm' target='_target'> 自己编制密码表</a></div>
<div id='KB12Parent' class='parent'><a href="#" onClick="expandIt('KB12');
return false">
综 &amp;nbsp;合 &amp;nbsp;类</a></div><div id='KB12Child' class='child'>
<a href='zh1.htm' target='_target'> 加密页面源代码</a><br>
<a href='zh2.htm' target='_target'> 访问时间限制</a><br>
<a href='zh11.htm' target='_target'> 搜索引擎登记</a><br>
<a href='zh12.htm' target='_target'> 下载记时器脚本</a>
</div>
<div id='KB13Parent' class='parent'><a href="#" onClick="expandIt('KB13');
return false">
游 &amp;nbsp;戏 &amp;nbsp;类</a></div><div id='KB13Child' class='child'>
<a href='you1.htm' target='_target'> 一款流行游戏</a></div>
<SCRIPT>numTotal=14;scores[1]='KB1';scores[2]='KB1';scores[3]='KB2';scores[4]='KB3';scores[5]='KB4';scores[6]='KB5';scores[7]='KB6';scores[8]='KB7';scores[9]='KB8';scores[10]='KB9';scores[11]='KB10';scores[12]='KB11';scores[13]='KB12';scores[14]='KB13';</SCRIPT>
</td></tr></table></center>
</body>
</html>
 
拜托,将js脚本排好板再贴。
2.3K的Script放在一行里,看的头晕![:(!]
new Array(20);
好像存不下你那二十多个结点,如果IE中也不能显示,将Array(20)调大
 
就是呀,头都看晕了!
 
其实这段代码是从网上copy的。。在ie里面没有问题。。但netscape不行
而且我发现netscape很多带javascrit的网页都用不了
我不懂javascript..望高手帮忙
整理如下:

<script language="JavaScript1.2">
scores = new Array(20);
var numTotal=0;
NS4 = (document.layers) ? 1 : 0;]
IE4 = (document.all) ? 1 : 0;
ver4 = (NS4 || IE4) ? 1 : 0;
if (ver4)
{ with (document)
{ write("<STYLE TYPE='text/css'>");
if (NS4)
{ write(".parent {position:absolute;
visibility:visible}");
write(".child {position:absolute;
visibility:visible}");
write(".regular {position:absolute;
visibility:visible}") }
else
{ write(".child {display:none}") }
write("</STYLE>");
} }
function getIndex(el)
{ ind = null;
for (i=0;
i<document.layers.length;
i++)
{ whichEl =do
cument.layers;

if (whichEl.id == el)
{ ind = i;

break;
} }
return ind;}
function arrange()
{ nextY =do
cument.layers[firstInd].pageY +document.layers[firstInd].document.height;

for (i=firstInd+1;
i<document.layers.length;
i++)
{ whichEl =do
cument.layers;

if (whichEl.visibility != "hide")
{ whichEl.pageY = nextY;
nextY += whichEl.document.height;
} }}
function initIt()
{ if (!ver4) return;

if (NS4)
{ for (i=0;
i<document.layers.length;
i++)
{ whichEl =do
cument.layers;

if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
}
arrange();
}
else
{ divColl =do
cument.all.tags("DIV");
for (i=0;
i<divColl.length;
i++)
{ whichEl = divColl(i);
if (whichEl.className == "child") whichEl.style.display = "none";}}}
function expandIt(el)
{if (!ver4) return;

if (IE4)
{ whichEl1 = eval(el + "Child");
for(i=1;i<=numTotal;i++)
{whichEl = eval(scores + "Child");
if(whichEl!=whichEl1)
{ whichEl.style.display = "none"; }}
whichEl1 = eval(el + "Child");

if (whichEl1.style.display == "none")
{ whichEl1.style.display = "block";
}
else
{ whichEl1.style.display = "none";
} }
else
{ whichEl = eval("document." + el + "Child");
for(i=1;i<=numTotal;i++)
{whichEl = eval("document." + scores + "Child");
if(whichEl!=whichEl1)
{ whichEl.visibility = "hide";}}
if (whichEl.visibility == "hide")
{ whichEl.visibility = "show";
}
else
{ whichEl.visibility = "hide";
}
arrange();
}}
onload = initIt;
</script>
 
关键在IE和NS的不兼容,不只是js。
do
cument 是指 HTML 的整个文档,取其中的某个元素(用id="myDiv"命名的<DIV><LAYER>标记)
IE存取style属性可以直接写如:
do
cument.all.myDiv.style.left=50;
do
cument.all.myDiv.style.zIndex=2;
NS只能存取layer对象的属性。且只有在position属性有设置时才可以。如:
do
cument.myDiv.bgColor = "green";
do
cument.myDiv.hiden = true;
我已经不再用NS了,让人伤心,其实还有 Mozila, Amaya 等好多浏览器,要想全兼容
实在是太累了。
调试那段脚本时可以适当的加 alert("");
显示调试信息。

 
有时间看看我的这个问题
http://www.delphibbs.com/delphibbs/dispq.asp?lid=583673
 
这段代码主要是由于div标签引起的。
Netscape对div标签支持不佳,他自己用layer标签取而代之。
要修改的话代价还是不小的。
建议你还是抄一些二者都兼容的javascript.
比如 http://webfx.eae.net/
 
痛苦。。。。。。。考虑用asp动态输出标签
 
if you use div in Netscape, it will not work well~~
if you want to implement this function, you can use a lots of pages to show~:)
 
大家谁见见过这样的代码或者网页请贴出来看看
 
再次提前
 
还没解决?
我试了一下,IE中也又问题的,暂时修改如下
function expandIt(el)
{
if (!ver4) return;

if (IE4) {
whichEl1 = eval(el + "Child");
for(i=1;
i<=numTotal;
i++){
//whichEl = eval(scores + "Child");
// !!!! scores 未定义 ???????
if(whichEl != whichEl1) {
// whichEl.style.display = "none";
}
}
......
 
多人接受答案了。
 
顶部