Avatar billede trp79 Nybegynder
14. juli 2005 - 15:13 Der 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");
}
Avatar billede roenving Novice
14. juli 2005 - 15:16 #1
Hvordan ser din getExtFormElementById ud ?-)
Avatar billede olebole Juniormester
14. juli 2005 - 15:19 #2
<ole>

- og da koden er spredt ud over flere frames: Hvordan ser hele din kode ud? Link, please  :)

/mvh
</bole>
Avatar billede trp79 Nybegynder
14. juli 2005 - 15:26 #3
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.
Avatar billede roenving Novice
14. juli 2005 - 15:29 #4
-- findes feltet i virtkeligheden i den øverste/yderste frame ?-)

-- og også funktionen ?o]
Avatar billede roenving Novice
14. juli 2005 - 15:31 #5
-- eller har du måske en frame, som ganske uklogt har fået navnet top ?-)
Avatar billede trp79 Nybegynder
14. juli 2005 - 15:54 #6
Det tjekker jeg lige imorgen roenving - tak for hjælpen indtil videre.
Avatar billede trp79 Nybegynder
15. juli 2005 - 08:35 #7
Godmorgen.
Topframen hedder "topframe", altså name="topframe".
Når du siger felter hvad mener du så?
Avatar billede roenving Novice
15. juli 2005 - 11:19 #8
Måske skal du simpelthen fjerne top. ?-)
Avatar billede trp79 Nybegynder
15. juli 2005 - 14:43 #9
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?
Avatar billede per1291 Nybegynder
15. juli 2005 - 15:23 #10
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
Avatar billede trp79 Nybegynder
18. juli 2005 - 09:56 #11
tak for det Per, jeg prøver at arbejde videre på en løsning med det i baghovedet :)
Avatar billede roenving Novice
18. juli 2005 - 14:45 #12
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 !-)
Avatar billede roenving Novice
18. juli 2005 - 14:46 #13
...
Ligger det i en (i)frame vil top og parent ...
Avatar billede trp79 Nybegynder
21. juli 2005 - 17:29 #14
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.
Avatar billede olebole Juniormester
21. juli 2005 - 17:33 #15
Jeg nåede aldrig at komme ud af hullet i dette spm, så det må være roenvings  :)
Avatar billede roenving Novice
21. juli 2005 - 17:39 #16
Hrm, kom lige til at tænke på, at funktionen måske ligger i den øvertes framen, men objektet, som skal hentes, måske ligger i den aktuelle frame ?-)
Avatar billede trp79 Nybegynder
29. juli 2005 - 13:05 #17
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?
Avatar billede trp79 Nybegynder
29. juli 2005 - 13:05 #18
beklager iøvrigt, at der er gået så inden jeg er vendt tilbage igen :(
Avatar billede trp79 Nybegynder
29. juli 2005 - 13:08 #19
Rønvig smid i øvrigt bare et svar, du har jo gjort et tappert forsøg på at hjælpe mig! og tak for forsøget til olebole også :)
Avatar billede roenving Novice
29. juli 2005 - 13:10 #20
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 !-)
Avatar billede trp79 Nybegynder
29. juli 2005 - 13:15 #21
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.

Smid du bare et svar, så lukker vi tråden :)
Avatar billede roenving Novice
29. juli 2005 - 13:16 #22
Oki '-)
Avatar billede trp79 Nybegynder
29. juli 2005 - 13:17 #23
Tak for ihærdigheden :)
Avatar billede roenving Novice
29. juli 2005 - 13:20 #24
-- og jeg takker for point ;~}
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