各位高手好!  本人做网站时,下载了一段JS动态菜单的代码,略修改后可以使用,但这段代码仅限于IE6 浏览器。不知能不能在其中设定不受浏览器限制,任何浏览器(最起码常用的浏览器)上都可以正常显示呢?万分感激!!!

解决方案 »

  1.   

    高手们,因为本人基本不懂JS,所以不知哪位有类似的代码?能否贴上来看看?我先把我用的JS代码贴上来,大家要是会改的帮忙改改也行。十分感谢!!!
    // ---- Add-On [0.7 KB]: Select Tag Fix for IE ----
    ;function iao_iframefix()
    {
    if(ulm_ie&&!ulm_mac&&!ulm_oldie&&!ulm_ie7){
    for(var i=0;i<(x31=uld.getElementsByTagName("iframe")).length;i++){
     if((a=x31[i]).getAttribute("x30")){a.style.height=(x32=a.parentNode.getElementsByTagName("UL")[0]).offsetHeight;a.style.width=x32.offsetWidth;
     }
     }}};
     
     function iao_ifix_add(b){
     if(ulm_ie&&!ulm_mac&&!ulm_oldie&&!ulm_ie7&&window.name!="hta"&&window.name!="imopenmenu"){
     b.parentNode.insertAdjacentHTML("afterBegin","<iframe src='javascript:false;' x30=1 style='z-index:-1;position:absolute;float:left;border-style:none;width:1px;height:1px;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);' frameborder='0'></iframe><div></div>");
     }}
    // ---- IM Code + Security [7.5 KB] ----
    im_version="10.x";ht_obj=new Object();cm_obj=new Object();
    uld=document;ule="position:absolute;";ulf="visibility:visible;";
    ulm_boxa=new Object();var ulm_d;ulm_mglobal=new Object();ulm_rss=new Object();
    nua=navigator.userAgent;ulm_ie=window.showHelp;ulm_ie7=nua.indexOf("MSIE 7")+1;
    ulm_mac=nua.indexOf("Mac")+1;ulm_navigator=nua.indexOf("Netscape")+1;
    ulm_version=parseFloat(navigator.vendorSub);
    ulm_oldnav=ulm_navigator&&ulm_version<7.1;ulm_oldie=ulm_ie&&nua.indexOf("MSIE 5.0")+1;
    ulm_iemac=ulm_ie&&ulm_mac;ulm_opera=nua.indexOf("Opera")+1;ulm_safari=nua.indexOf("afari")+1;
    x42="_";ulm_curs="cursor:hand;";
    if(!ulm_ie){
    x42="z";ulm_curs="cursor:pointer;";
    }ulmpi=window.imenus_add_pointer_image;
    var x43;
    for(mi=0;mi<(x1=uld.getElementsByTagName("UL")).length;mi++){
    if((x2=x1[mi].id)&&x2.indexOf("imenus")+1){
    dto=new window["imenus_data"+(x2=x2.substring(6))];ulm_boxa.dto=dto;ulm_boxa["dto"+x2]=dto;
    ulm_d=dto.menu_showhide_delay;if(ulm_ie&&!ulm_ie7&&!ulm_mac&&(b=window.imenus_efix))b(x2);
    imenus_create_menu(x1[mi].childNodes,x2+x42,dto,x2);(ap1=x1[mi].parentNode).id="imouter"+x2;
    ulm_mglobal["imde"+x2]=ap1;
    var dt="onmouseover";
    if(ulm_mglobal.activate_onclick)dt="onclick";
    document[dt]=function(){
    var a;
    if(!ht_obj.doc){clearTimeout(ht_obj.doc);ht_obj.doc=null;
    }else return;
    ht_obj.doc=setTimeout("im_hide()",ulm_d);
    if(a=window.imenus_box_reverse)a();
    if(a=window.imenus_expandani_hideall)a();
    if(a=window.imenus_hide_pointer)a();
    if(a=window.imenus_shift_hide_all)a();
    };
    imarc("imde",ap1);
    if(ulm_oldnav)ap1.parentNode.style.position="static";
    if(!ulm_oldnav&&ulmpi)ulmpi(x1[mi],dto,0,x2);x6(x2,dto);
    if((ulm_ie&&!ulm_iemac)&&(b1=window.iao_iframefix))window.attachEvent("onload",b1);
    if((b1=window.iao_hideshow)&&(ulm_ie&&!ulm_mac))attachEvent("onload",b1);
    if(b1=window.imenus_box_ani_init)b1(ap1,dto);
    if(b1=window.imenus_expandani_init)b1(ap1,dto);
    if(b1=window.imenus_info_addmsg)b1(x2,dto);
    if(b1=window.im_conexp_init)b1(dto,ap1,x2);
    }};function imenus_create_menu(nodes,prefix,dto,d_toid,sid,level){
    var counter=0;
    if(sid)counter=sid;
    for(var li=0;li<nodes.length;li++){
    var a=nodes[li];
    var c;
    if(a.tagName=="LI"){
    a.id="ulitem"+prefix+counter;(this.atag=a.getElementsByTagName("A")[0]).id="ulaitem"+prefix+counter;
    if(c=this.atag.getAttribute("himg")){
    ulm_mglobal["timg"+a.id]=new Image();ulm_mglobal["timg"+a.id].src=c;
    }
    var level;
    a.level=(level=prefix.split(x42).length-1);a.dto=d_toid;a.x4=prefix;a.sid=counter;
    if((a1=window.imenus_drag_evts)&&level>1)a1(a,dto);
    a.onkeydown=function(e){
    e=e||window.event;
    if(e.keyCode==13&& !ulm_boxa.go)hover_handle(this,1);
    };
    if(dto.hide_focus_box)this.atag.onfocus=function(){
    this.blur()};imenus_se(a,dto);this.isb=false;x29=a.getElementsByTagName("UL");
    for(ti=0;ti<x29.length;ti++){
    var b=x29[ti];
    if(c=window.iao_ifix_add)c(b);
    var wgc;
    if(wgc=window.getComputedStyle){
    if(wgc(b.parentNode,"").getPropertyValue("visibility")=="visible"){
    cm_obj[a.id]=a;imarc("ishow",a,1);}}
    else  if(ulm_ie&&b.parentNode.currentStyle.visibility=="visible"){
    cm_obj[a.id]=a;imarc("ishow",a,1);}
    if((dd=this.atag.firstChild)&&(dd.tagName=="SPAN")&&(dd.className.indexOf("imea")+1)){
    this.isb=true;
    if(ulm_mglobal.eimg_fix)imenus_efix_add(level,dd);dd.className=dd.className+"j";dd.firstChild.id="ea"+a.id;dd.setAttribute("imexpandarrow",1);
    }
    b.id="x1ub"+prefix+counter;
    if(!ulm_oldnav&&ulmpi)ulmpi(b.parentNode,dto,level);
    new imenus_create_menu(b.childNodes,prefix+counter+x42,dto,d_toid);
    }
    if((a1=window.imenus_button_add)&&level==1)a1(this.atag,dto);
    if(this.isb&&ulm_ie&&level==1&&document.getElementById("ssimaw")){
    if(a1=window.imenus_autowidth)a1(this.atag,counter);}
    if(!sid&&!ulm_navigator&&!ulm_iemac&&(rssurl=a.getAttribute("rssfeed"))&&(c=window.imenus_get_rss_data))c(a,rssurl);counter++;
    }}};function imenus_se(a,dto){
    var d;
    if(!(d=window.imenus_onclick_events)||!d(a,dto)){
    a.onmouseover=function(e){
    var a,b,at;clearTimeout(ht_obj.doc);ht_obj.doc=null;
    if(((at=this.getElementsByTagName("A")[0]).className.indexOf("iactive")==-1)&&at.className.indexOf("imsubtitle")==-1)imarc("ihover",at,1);
    if(b=at.getAttribute("himg")){
    if(!at.getAttribute("zhimg"))at.setAttribute("zhimg",at.style.backgroundImage);at.style.backgroundImage="url("+b+")";}
    if(b=window.imenus_shift)b(at);
    if(b=window.imenus_expandani_animateit)b(this);
    if((ulm_boxa["go"+parseInt(this.id.substring(6))])&&(a=this.getElementsByTagName("UL")[0]))imenus_box_ani(true,a,this,e);
    else {
    if(this.className.indexOf("ishow")==-1)ht_obj[this.level]=setTimeout("hover_handle(uld.getElementById('"+this.id+"'))",ulm_d);
    if(a=window.imenus_box_reverse)a(this);}
    if(a=window.im_conexp_show)a(this);
    if(!window.imenus_chover){im_kille(e);return false;}};
    a.onmouseout=function(e){
    var a,b;
    if((a=this.getElementsByTagName("A")[0]).className.indexOf("iactive")==-1){
    imarc("ihover",a);imarc("iactive",a);}
    if(this.className.indexOf("ishow")==-1&&(b=a.getAttribute("zhimg")))a.style.backgroundImage=b;clearTimeout(ht_obj[this.level]);
    if(!window.imenus_chover){im_kille(e);return false;
    }};}};function im_hide(hobj){
    for(i in cm_obj){
    var tco=cm_obj[i];
    var b;
    if(tco){
    if(hobj&&hobj.id.indexOf(tco.id)+1)continue;
    imarc("ishow",tco);
    var at=tco.getElementsByTagName("A")[0];imarc("ihover",at);imarc("iactive",at);
    if(b=at.getAttribute("zhimg"))at.style.backgroundImage=b;cm_obj[i]=null;i++;
    if(ulm_boxa["go"+parseInt(tco.id.substring(6))])imenus_box_h(tco);
    var a;
    if(a=window.imenus_expandani_hideit)a(tco);
    if(a=window.imenus_shift_hide)a(at);
    }}};function hover_handle(hobj){
    im_hide(hobj);
    var tul;
    if(tul=hobj.getElementsByTagName("UL")[0]){
    try{
    if((ulm_ie&&!ulm_mac)&&(plobj=tul.filters[0])&&tul.parentNode.currentStyle.visibility=="hidden"){
    if(x43)x43.stop();plobj.apply();plobj.play();x43=plobj;
    }}catch(e){}
    var a;
    if(a=window.imenus_stack_init)a(tul);
    if(a=window.iao_apos)a(tul);
    var at=hobj.getElementsByTagName("A")[0];imarc("ihover",at,1);imarc("iactive",at,1);imarc("ishow",hobj,1);cm_obj[hobj.id]=hobj;
    if(a=window.imenus_stack_ani)a(tul);
    }};function imarc(name,obj,add){
    if(add){
    if(obj.className.indexOf(name)==-1)obj.className+=(obj.className?' ':'')+name;
    }else {
    obj.className=obj.className.replace(" "+name,"");obj.className=obj.className.replace(name,"");
    }};function x26(obj){
    var x=0;
    var y=0;
    do{x+=obj.offsetLeft;y+=obj.offsetTop;
    }while(obj=obj.offsetParent)return new Array(x,y);
    };function im_kille(e){
    if(!e)e=event;e.cancelBubble=true;
    if(e.stopPropagation)e.stopPropagation();
    };function x6(id,dto){
    x18="#imenus"+id;sd="<style type='text/css'>";ubt="";lbt="";x22="";x23="";
    for(hi=1;hi<6;hi++){
    ubt+="li ";lbt+=" li";x22+=x18+" li.ishow "+ubt+" .imsubc";x23+=x18+lbt+".ishow .imsubc";
    if(hi!=5){x22+=",";x23+=",";
    }}sd+=x22+"{visibility:hidden;}";sd+=x23+"{"+ulf+"}";sd+=x18+" li ul{"+((!window.imenus_drag_evts&&window.name!="hta"&&ulm_ie)?dto.subs_ie_transition_show:"")+"}";
    if(ulm_oldnav)sd+=".imcm .imsc{position:absolute;}";
    if(ulm_ie&&!((dcm=document.compatMode)&&dcm=="CSS1Compat"))sd+=".imgl .imbrc{height:1px;}";
    if(a1=window.imenus_drag_styles)sd+=a1(id,dto);if(a1=window.imenus_info_styles)sd+=a1(id,dto);
    if(ulm_mglobal.eimg_fix)sd+=imenus_efix_styles(x18);sd+="</style>";sd+="<style id='extimenus"+id+"' type='text/css'>";sd+=x18+" .ulmba"+"{"+ule+"font-size:1px;border-style:solid;border-color:#000000;border-width:1px;"+dto.box_animation_styles+"}";sd+="</style>";uld.write(sd);}
      

  2.   

    好长!!
    先将你a.xxx这种访问方式换成 document.getElementById("a").xxx
    另外时间和属性的添加也没考虑兼容问题。
    其他的看不下去了,眼都花了
      

  3.   

    先谢谢小草!不过我真是不懂,我这是个独立的JS文件,没放在页面中,也要用document.getElementById("a").xxx  这种方式访问么?还有,具体的兼容性该怎么改呢?能给个范例么?十分感谢!!!