我继承了别人的网站,我正在尝试解决为什么基于javascript的翻转菜单除了IE(启用兼容性模式)之外什么都不起作用。
代码,通过包含的menu.js:
function goMenu(m,n){
if(n){
showMenu(m);
}else{
hideMenu(m,n);
}
}
function showMenu(m) {
for(i=0;i<6;i++){
if (i!=m){
hideMenu(i);
}
}
if(document.all){
eval('document.all.menu'+m+'.style.visibility="visible"');
}else{
eval('document.menuSpan.document.menu'+m+'.visibility="show"');
}
}
function hideMenu(m) {
if(document.all){
eval('document.all.menu'+m+'.style.visibility="hidden"');
}else{
eval('document.menuSpan.document.menu'+m+'.visibility="hide"');
}
}
然后HTML文件中的代码是基本的
<SPAN ID="menu0" ONMOUSEOUT="goMenu(0,0);" ONMOUSEOVER="goMenu(0,1);">
<LAYER ONMOUSEOUT="goMenu(0,0);">
...
</LAYER>
</SPAN>
这在IE中运行良好多年(最新版本需要启用兼容性模式),而且我从未在Firefox或Chrome中工作过。现在,企业主希望我在所有浏览器中都能使用它。我不是一个真正的javascript人,所以我不确定javascript控制台的错误是什么意思:
From IE:
Unable to get property 'document' of undefined or null reference
From Chrome:
Uncaught TypeError: Cannot read property 'document' of undefined
我试过调整menu.js中的代码,但无济于事。有任何Javascript经验的人能够告诉我什么会使这个代码适用于最新的浏览器,如果有的话?
答案 0 :(得分:0)
我猜它来自document.menuSpan.document
个操作之一。 document.menuSpan
可能未定义。它不属于任何API。