Avatar billede Slettet bruger
25. august 1999 - 08:19 Der er 4 kommentarer og
1 løsning

Hjælp til menu script

Jeg vil gerne have nedenstående script til at virke ens i både IE og NS. Når scripten indlæse i IE, er alle menupunkterne pænt lukkedet, men ikke i NS. I NS kan man trykke på punktet i menuen og ikke kun på gif, for at få undermenuen frem, det kan man ikke i IE.
Scriptet kan ses på www.kif-atletik.dk.

Spørgsmålet ligner et tilsvarende, så der er 30 bonus point at hente der. Håber på hurtigt svar.

<SCRIPT LANGUAGE="JavaScript">
<!--
var bV=parseInt(navigator.appVersion);
NS4=(document.layers) ? true:false;
IE4=((document.all)&&(bV>=4))?true:false;
ver4 = (NS4 || IE4) ? true:false;
if (document.images) {
arImLoad = new Array (
"../art/b_left_over",
"../art/b_left_down",
"../art/b_right_over",
"../art/b_right_down",
"triUp");
arImList = new Array ();
for (counter in arImLoad) {
arImList[counter] = new Image();
arImList[counter].src = arImLoad[counter] + ".gif";
}}
function navOver(imName,dir,over,bot) {
if (!document.images) {return};
whichIm = (NS4 && bot) ? document.elFooter.document.images[imName] : document.images[imName];
if (over) {whichIm.src = "../art/b_" + dir + "_over.gif"}
else {whichIm.src = "../art/b_" + dir + ".gif"}
}
function navPress(imName,dir,press,bot) {
whichIm = (NS4 && bot) ? document.elFooter.document.images[imName] : document.images[imName];
if (press) {whichIm.src = "../art/b_" + dir + "_down.gif"}
else {whichIm.src = "../art/b_" + dir + ".gif"}
}
function expandIt(){return}
function expandAll(){return}
//-->
</SCRIPT>

<SCRIPT LANGUAGE="JavaScript1.2">
<!--
isExpanded = false;

function getIndex(el) {
    ind = null;
    for (i=0; i<document.layers.length; i++) {
        whichEl = document.layers[i];
        if (whichEl.id == el) {
            ind = i;
            break;
        }
    }
    return ind;
}

function arrange() {
    nextY = document.layers[firstInd].pageY + document.layers[firstInd].document.height;
    for (i=firstInd+1; i<document.layers.length; i++) {
        whichEl = document.layers[i];
        if (whichEl.visibility != "hide") {
            whichEl.pageY = nextY;
            nextY += whichEl.document.height;
        }
    }
}

function initIt(){
    if (NS4) {
        for (i=0; i<document.layers.length; i++) {
            whichEl = document.layers[i];
            if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
        }
        arrange();
    }
    else {
        tempColl = document.all.tags("DIV");
        for (i=0; i<tempColl.length; i++) {
            if (tempColl(i).className == "child") tempColl(i).style.display = "none";
        }
    }
}

function expandIt(el) {
    if (!ver4) return;
    if (IE4) {expandIE(el)} else {expandNS(el)}
}

function expandIE(el) {
    whichEl = eval(el + "Child");
    whichIm = event.srcElement;
    if (whichEl.style.display == "none") {
        whichEl.style.display = "block";
        whichIm.src = "triUp.gif";       
    }
    else {
        whichEl.style.display = "none";
        whichIm.src = "triDown.gif";
    }
}

function expandNS(el) {
    whichEl = eval("document." + el + "Child");
    whichIm = eval("document." + el + "Parent.document.images['imEx']");
    if (whichEl.visibility == "hide") {
        whichEl.visibility = "show";
        whichIm.src = "triUp.gif";
    }
    else {
        whichEl.visibility = "hide";
        whichIm.src = "triDown.gif";
    }
    arrange();
}

function showAll() {
    for (i=firstInd; i<document.layers.length; i++) {
        whichEl = document.layers[i];
        whichEl.visibility = "show";
    }
}

function expandAll(isBot) {
    newSrc = (isExpanded) ? "triDown.gif" : "triUp.gif";

    if (NS4) {
        document.images["imEx"].src = newSrc;
        for (i=firstInd; i<document.layers.length; i++) {
            whichEl = document.layers[i];
            if (whichEl.id.indexOf("Parent") != -1) {
                whichEl.document.images["imEx"].src = newSrc;
            }
            if (whichEl.id.indexOf("Child") != -1) {
                whichEl.visibility = (isExpanded) ? "hide" : "show";
            }
        }

        arrange();
        if (isBot && isExpanded) scrollTo(0,document.layers[firstInd].pageY);
    }
    else {
        divColl = document.all.tags("DIV");
        for (i=0; i<divColl.length; i++) {
            if (divColl(i).className == "child") {
                divColl(i).style.display = (isExpanded) ? "none" : "block";
            }
        }
        imColl = document.images.item("imEx");
        for (i=0; i<imColl.length; i++) {
            imColl(i).src = newSrc;
        }
    }

    isExpanded = !isExpanded;
}

with (document) {
    write("<STYLE TYPE='text/css'>");
    if (NS4) {
        write(".parent {position:absolute; visibility:hidden}");
        write(".child {position:absolute; visibility:hidden}");
        write(".regular {position:absolute; visibility:hidden}")
    }
    else {
        write(".child {display:none}")
    }
    write("</STYLE>");
}

onload = initIt;
//-->
</SCRIPT>

</HEAD>
<BODY>


<!-- ***************** VIS/SKJUL ALLE *********************** -->
<DIV ID=B><A HREF="#" onClick="expandAll(false); return false">
<IMG NAME="imEx" SRC="triDown.gif" WIDTH=12 HEIGHT=12 BORDER=0 ALT="Vis/Skjul alle"></A>
Vis/Gem alle</DIV>


<!-- ******************* OM KIF ******************************** -->
<DIV ID="elOneParent" CLASS=parent>
<DIV ID=B><A HREF="#" onClick="expandIt('elOne'); return false">
<IMG NAME="imEx" SRC="triDown.gif" WIDTH=12 HEIGHT=12 BORDER=0 ALT="Vis/Gem undermenu">
Om KIF</A></DIV></DIV>

<!-- *************** OM KIF - UNDERMENU *********************** -->
<DIV ID="elOneChild" CLASS=child>
<DIV ID=B><A HREF="../omkif/generelt.html" TARGET="main">Generelt</A><BR>
<A HREF="../omkif/contact.html" TARGET="main">Kontaktpersoner</A><BR>
<A HREF="../omkif/2006.html" TARGET="main">KIF's hovedmål</A><BR>
<A HREF="../omkif/galleri/galleri.html" TARGET="main">Profilgalleri</A><BR>
<BR></DIV></DIV>


<!-- ******************** NYHEDER ************************** -->
<DIV ID="elTwoParent" CLASS=parent>
<DIV ID=B><A HREF="#" onClick="expandIt('elTwo'); return false">
<IMG NAME="imEx" SRC="triDown.gif" WIDTH=12 HEIGHT=12 BORDER=0 ALT="Vis/Gem undermenu">
Nyheder</DIV></DIV></A>

<!-- *************** NYHEDER - UNDERMENU ******************** -->
<DIV ID="elTwoChild" CLASS=child>
<DIV ID=B>
<A HREF="../news/news.html" TARGET="main">Sidste nyt</A><BR>
<A HREF="../news/dm1999.html" TARGET="main">DM 1999</A><BR>
<A HREF="../news/arkiv.html" TARGET="main">Ældre nyheder</A><BR>
<BR></DIV></DIV>


<!-- ******************* GEM/VIS ALLE ********************* -->
<DIV ID="elExpParent" CLASS=regular>
<DIV ID=B><A HREF="#" onClick="expandAll(true); return false">
<IMG NAME="imEx" SRC="triDown.gif" WIDTH=12 HEIGHT=12 BORDER=0 ALT="Vis/Skjul alle"></A>
Vis/Gem alle</DIV><BR><BR></DIV>

<SCRIPT LANGUAGE="JavaScript1.2">
<!--
if (NS4) {
    firstEl = "elOneParent";
    firstInd = getIndex(firstEl);
    showAll();
    arrange();
}
//-->
</SCRIPT>
Avatar billede pingo Nybegynder
25. august 1999 - 09:15 #1
Det med at de ikke lukker i Netscape skyldes at du ikke kører initIt() i din BODY tag.

Prøv at skifte din body tag ud med <BODY OnLoad="InitIt();">

Hvad min IE angår kan jeg nu trykke på HELE punktet - både pilen og teksten - er det ikke meningen?
Avatar billede Slettet bruger
26. august 1999 - 07:53 #2
Det virker ikke i min browser, jeg får en scriptfejl. "Ikke defineret"
Avatar billede Slettet bruger
26. august 1999 - 07:54 #3
Der er stadig væk 100 point + 30 til den der kan hjælpe mig.
Avatar billede pingo Nybegynder
26. august 1999 - 09:08 #4
Det skal virke - <BODY OnLoad="initIt()">

Jeg havde skrevet et stort I - det gør nok forskellen!

Prøv igen!

Virker det ikke så kan jeg ikke se noget mellemrum mellem init() og } tegnet i funktionen - prøv at sætte et mellemrum der!
Avatar billede Slettet bruger
27. august 1999 - 07:10 #5
Finde de andre 30 p. hvis du vil have dem. Først til mølle ....
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