14. juli 2005 - 15:13Der er
23 kommentarer og 1 løsning
Forklaring af js kode
Hejsa Jeg sidder og skal lave en demo af en hjemmeside, men jeg kan ikke få menuen til at fungerer. Når jeg debugger stejler den ved linien: "var selectedMenuItem = top.getExtFormElementById("selectedMenuItem", "menuframe");" i understående javascript. Siden benytter frames. Fejlen lyder: "Linje 6. Fejl: Objektet understøtter ikke denne egenskab eller metode".
Håber nogen kan hjælpe mig igennem - sig endelig til, hvis jeg skal poste mere :)
//************************************************************************** // menu.js //************************************************************************** var cmi = top.clickMenuItem; function expandMenu() { var selectedMenuItem = top.getExtFormElementById("selectedMenuItem", "menuframe"); var menuItemId = selectedMenuItem.value; var menuItemIdParent = top.getParentBlockId(menuItemId); var menuItemIdParentsParent = top.getParentBlockId(menuItemIdParent); cmi(menuItemIdParentsParent, "mn"); cmi(menuItemIdParent, "mn"); cmi(menuItemId, "mn"); }
function getExtFormElementById(fieldName) { var field = null; field = document.getElementById(fieldName); if (field == null) { field = getFieldByTagName(fieldName, "input") } if (field == null) { field = getFieldByTagName(fieldName, "select") } if (field == null) { field = getFieldByTagName(fieldName, "textarea") } return field; }
function getFieldByTagName(fieldName, tagName) { var elementList = document.getElementsByTagName(tagName); var field = null; for (var i = 0; i < elementList.length; i++) {
if ((elementList[i].name == fieldName) || (elementList[i].id == fieldName)) { field = elementList[i]; break; } } return field; }
Jeg sidder på arbejde på et større netværk, så jeg har ikke mulighed for at give et direkte link til min maskine. Jeg holder fri nu, men er tilbage imorgen tidlig igen. Jeg tjekker dog lige dette spg. igen når jeg kommer hjem.
nej desværre :( men hvad betyder top? kan det være en henvisning til et bibliotek med javascriptfiler i, hvor den så forventer denne metode ligger i en af dem?
Hej - jeg svarer kun på dit spørgsmål om hvad "top" betyder.
Ordet "top" kan bruges som reference til den øverste side i dit hierarki af åbnede sider. Hvis den aktuelle side ligger i en frame, så kan du fra denne side referere til den side som skaber dine frames ved at bruge "parent" - Og hvis denne parent-side samtidig er din startside, kan du også refere til den vha. "top". - Hilsen Per
I et html-document kan du referere til det aktuelle vindue med window eller self ...
Hvis et aktuelt html-dokument ikke ligger i en (i)frame er top = parent = window = self, altså henviser til det samme objekt ...
Ligger det i en (i)frame top og parent være repræsentanter for andre window-objekter, hvor parent vil være det dokument (/frameset), som indeholder denne (i)frame ...
-- men som det fremgår af andet afsnit kan top og parent referere til det samme vindue, hvis det vindue er det, som ligger direkte i browseren (kan ses i adresse-linjen !-)
Jeg er desværre stadig ikke kommet videre, så jeg afventer at ham, der har lavet menuen kommer tilbage fra ferie. Jeg vil sige tak for hjælpen og bede jer smide et svar, da i jo har forsøgt at hjælpe mig.
Okay, jeg har fundet ud af lidt mere, nu hvor jeg er begyndt at arbejde på problemet igen. I den demo som jeg er ved at lave har jeg et index.htm som beskriver et frameset, og når man så er logget ind(via statisk link) så er det et nyt framesæt der benyttes. Menuerne er i de to framesets er to forskellige menuer, og meneuen virker altså ikke når man er logget ind. Benytter jeg derimod den menu(.htm), der benyttes når man er logget ind i login framesettet, så virker menuen fint nok, men altså ikke når jeg benytter den i det frameset, der vises når man er "logget ind". Kan det være noget med top, der driller?
Kan du ikke linke til et forsøg, for det kan jo være svært, at vi skal lave en quiz, hvis vi får en ide til, hvor det kan være galt, og så måske skal stille dig 6 spørgsmål, før vi når enden afudforkningen af den detalje !-)
Nej det kan jeg desværre ikke - det vil forretningen formentlig ikke blive tilfreds med. Jeg må se om jeg ikke kan få fat i nogle af udviklerne istedet.
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.