Avatar billede pascinell Nybegynder
21. januar 2002 - 20:21 Der er 2 kommentarer

smart menu - MEN

Nedenstående kode er preload af menuknapper samt en browser check.

Den virker fint i IE4 og NN4 - Men virker ikke i Netscape 6.0 - er der nogen der kan hjælpe ?



<script>
var theitemid;
var curMenu = \'dummyLay\';
var clickedImg = \'dummy\';
var clickedImgSub = \'dummysub\';
var flag = false;

function init(){
layerInit();
imageLoad();
}

function imageLoad(){ 
    if (document.images){
        dummy_on = new Image(); dummy_on.src = \"image/tom.gif\";
        dummy_off = new Image(); dummy_off.src = \"image/tom.gif\";
        dummysub_on = new Image(); dummysub_on.src = \"image/tom.gif\";
        dummysub_off = new Image(); dummysub_off.src = \"image/tom.gif\";
        forsidemenu_on = new Image(); forsidemenu_on.src = \"image/forside_menu_klik.gif\";
        forsidemenu_off = new Image(); forsidemenu_off.src = \"image/forside_menu.gif\";
        profilmenu_on = new Image(); profilmenu_on.src = \"image/profil_menu_klik.gif\";
        profilmenu_off = new Image(); profilmenu_off.src = \"image/profil_menu.gif\";
        nyhedermenu_on = new Image(); nyhedermenu_on.src = \"image/nyheder_menu_klik.gif\";
        nyhedermenu_off = new Image(); nyhedermenu_off.src = \"image/nyheder_menu.gif\";
        servicesmenu_on = new Image(); servicesmenu_on.src = \"image/services_menu_klik.gif\";
        servicesmenu_off = new Image(); servicesmenu_off.src = \"image/services_menu.gif\";
        kontaktmenu_on = new Image(); kontaktmenu_on.src = \"image/kontakt_menu_klik.gif\";
        kontaktmenu_off = new Image(); kontaktmenu_off.src = \"image/kontakt_menu.gif\";

flag = true;
        }
}
       
function layerInit(){
    if ((ver == \"nn_pc\")||(ver == \"nn_mac\")){
        layerStyleRef=\"layer.\";
        layerRef=\"document.layers\";
        styleSwitch=\"\";
        visibleVar=\"show\";
    }
    else if ((ver == \"ie_pc\")||(ver == \"ie_mac\")){
        layerStyleRef=\"layer.style.\";
        layerRef=\"document.all\";
        styleSwitch=\".style\";
        visibleVar=\"visible\";
    }
    else if ((ver == \"nn6_pc\")||(ver == \"nn6_mac\")){
        layerStyleRef=\"layer.style.\";
        layerRef=\"document.getElementById[layer.style].style.visibility =\'visible\'\";
    }
}
       
appVer = navigator.appVersion.toLowerCase();
browserName = navigator.appName;
str = navigator.appVersion;
browserVer = str.substr(21,2);
if(browserName == \"Netscape\"){
ver = (appVer.indexOf(\"win\")!=-1)?\'nn_pc\':\'nn_mac\';
}
else if((browserName == \"Microsoft Internet Explorer\")){
ver = (appVer.indexOf(\"win\")!=-1)?\'ie_pc\':\'ie_mac\';
}
else if((browserName == \"Microsoft Internet Explorer\")){
ver = (appVer.indexOf(\"win\")!=-1)?\'ie_pc\':\'ie_mac\';
}
else if((browserName == \"Netscape\" && browserVersion == 5)) {
ver = (appVer.indexOf(\"win\")!=-1)?\'nn6_pc\':\'nn6_mac\';
}

function clickImg(imgName){
    if ((document.images) && (flag == true)){
    eval(layerRef + \'[\"menu\"].document[\"\' + clickedImg + \'\"].src = \'+clickedImg+\'_off.src\');
    eval(layerRef + \'[\"menu\"].document[\"\' + imgName + \'\"].src = \'+imgName+\'_on.src\');
    clickedImg = imgName;
  }
}

function remoteChange(imgName,layerName,subname){
clickImg(imgName);
layerOn(layerName);
clickImgSub(subname);
}

function clickImgSub(imgName){
    if ((document.images) && (flag == true)){
    eval(layerRef + \'[\"\' + curMenu + \'\"].document[\"\' + clickedImgSub + \'\"].src = \'+clickedImgSub+\'_off.src\');
    eval(layerRef + \'[\"\' + curMenu + \'\"].document[\"\' + imgName + \'\"].src = \'+imgName+\'_on.src\');
    clickedImgSub = imgName;
  }
}

function layerOn(layerName){
            eval(layerRef + \'[\"\' + curMenu + \'\"].document[\"\' + clickedImgSub + \'\"].src = \'+clickedImgSub+\'_off.src\');
            clickedImgSub = \'dummysub\';
            eval(layerRef+\'[\"\'+curMenu+\'\"]\'+styleSwitch+\'.visibility=\"hidden\"\');
            eval(layerRef+\'[\"\'+layerName+\'\"]\'+styleSwitch+\'.visibility=\"visible\"\');
            curMenu = layerName;
}

</script>
<body onload=\"init();\" background=\"image/menu_baggrund.gif\" bgcolor=\"#DADAE5\" topmargin=\"0\" leftmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">

ect.
etc.

MAX
Avatar billede rrm Nybegynder
21. januar 2002 - 23:24 #1
Det er fordi at Netscape 6 er gået væk fra \"layers\" og til getElementById...
Avatar billede rrm Nybegynder
21. januar 2002 - 23:25 #2
F.eks.

document.getElementsById(\"navn\").style.visibility = \"hidden\"

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester