Avatar billede carpediem Nybegynder
03. december 2001 - 13:22 Der er 3 kommentarer og
1 løsning

Dropdown - Tekst istedet for billede

Jeg har brugt en dropdown funktion, som jeg har fundet herinde. Det gik fint med at tilpasse den.
Altså lige indtil jeg ikke ville bruge billeder som objekt længere. Hvad skal jeg lave om for at få det til at virke?

<script language=\"JavaScript\">

function showSel(Side, ID) {
    thisSel = document.getElementById(\"mySel\");
    if (thisSel.style.visibility == \"hidden\") {
        selL = xPos([ID]);
        selT = yPos([ID]);
        thisSel.style.left = selL; // Place the div at the pic - width a little offset
        thisSel.style.top = selT+20;  // Place the div at the pic - width a little offset
        thisSel.style.visibility = \"visible\";
        document.getElementById(\"selFrame\").src = Side; // Load the html into the iframe
    }
    else {
        thisSel.style.visibility = \"hidden\";
    }
}

/*******************************************************************************************************************************************************
                                                        Functions for positioning of the select-box
*******************************************************************************************************************************************************/

// Function that finds a pic\'s y-position:
function yPos(what){
    var PosY = getY(document.Images[what]);
    return PosY;
}

// Function that finds a pic\'s x-position:
function xPos(what){
    var PosX = getX(document.Images[what]);
    return PosX;
}

// These two next are used - in IE and NS6+ - by the two preceding functions:
function getY(obj) {
    if (obj == document.body) {
        return obj.offsetTop
    }
    else {
        return obj.offsetTop + getY(obj.offsetParent);
    }
}
function getX(obj) {
    if (obj == document.body) {
        return obj.offsetLeft
    }
    else {
        return obj.offsetLeft + getX(obj.offsetParent);
    }
}
</script>
</HEAD>
<BODY scroll=No>
<div id=\"mySel\" style=\"position:absolute;visibility:hidden;\">
    <iframe id=\"selFrame\" width=\"100\" CLASS=\"MenuDrop\" FRAMEBORDER=\"0\"></iframe>
</div>
<TABLE BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\" WIDTH=\"100%\" HEIGHT=\"20\" BACKGROUND=\"Images/menu_spacer.gif\">
<TR>
  <TD CLASS=\"HovedMenu\">
    <A HREF=\"Virksomhedsinfo.asp\" TARGET=\"\" CLASS=\"HovedMenu\">&nbsp;&nbsp;Virksomheden&nbsp;&nbsp;</A>
  </TD>
  <TD WIDTH=2>
    <IMG SRC=\"images/menu_left_02.gif\" WIDTH=2 HEIGHT=20>
  </TD>
  <TD CLASS=\"HovedMenu\">
    <A HREF=\"Medarbejderen.asp\" TARGET=\"\" CLASS=\"HovedMenu\">&nbsp;&nbsp;Medarbejderen&nbsp;&nbsp;</A>
  </TD>
  <TD WIDTH=2>
    <IMG SRC=\"images/menu_left_02.gif\" WIDTH=2 HEIGHT=20>
  </TD>
  <TD CLASS=\"HovedMenu\" id=\"3\" onmousedown=\"showSel(\'Projekter.htm\', 3);\" CLASS=\"HovedMenu\">
    &nbsp;&nbsp;Projekter&nbsp;&nbsp;
  </TD>
  <TD WIDTH=\"99%\">&nbsp;</TD>
</TR>
</TABLE>
</BODY>
</HTML>

Jeg har forsøgt at lave document.Images[what] om til document.GetElementByID[what] men det var ikke helt nok. Når jeg ikke gør det kommer der fejlen:
Line: 34
Error: document.Images is null or not an object

Laver jeg det derimod om til document.getElementById[what]

Den fejl, er jo nok fordi det ikke er et billede jeg klikker på.

Line: 52
Error: \'offsetLeft\' is null or not an object

Er der nogen der har nogle idéer til hvordan jeg kan få det til at virke med tekst istedet for billeder?
Avatar billede jakoba Nybegynder
03. december 2001 - 14:01 #1
images er med lille \'i\'
getElementById er med lille \'g\' og virker kun i ret nye browsere. test før du bruger den:
    if ( document.getElementById ) {
        // den findes, så den kan bruges.
    } else {
        // den findes ikke. brug noget andet. (fx document.all[what]
    }

NS6 gemmer positionsinfo som  \"123px\" istedet for blot \"123\" så det er sikrest at bruge parseInt for at hente værdien. dvs:
    parseInt( obj.offsetTop );
istedet for blot:
    obj.offsetTop;        // ditto med offsetLeft

mvh JakobA

Avatar billede carpediem Nybegynder
03. december 2001 - 14:16 #2
Ja, undskyld. Det var en lidt gammel tekst.
images er med lille \'i\' i det jeg bruger og getElementById er også med lille g.

Det andet har jeg ikke gjort noget ved. Det skal blot virke i IE 5.5 eller derover.
Avatar billede carpediem Nybegynder
06. februar 2002 - 10:34 #3
lukker spg. Har endnu ikke fundet en løsning.
Avatar billede carpediem Nybegynder
06. februar 2002 - 10:34 #4
lukker spg. Har endnu ikke fundet en løsning.
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