Avatar billede mo-bo Nybegynder
11. august 2001 - 18:22 Der er 8 kommentarer og
1 løsning

kan det passe???

Kan det passe at dette ikke kan lade sig gøre??

Har index.htm med 2 frames
<frame name=\"navi\">
<frame name=\"main\">

I navi.html har jeg <body onload=\"opdater();\">
og i Funktion opdater vil jeg gerne have at den starter en funktion i main.html

Kan dette ikke lade sig gøre???
Altså at man trigger en funktion fra en anden frame.
Avatar billede stigc Nybegynder
11. august 2001 - 18:31 #1
jo
Avatar billede stigc Nybegynder
11. august 2001 - 18:31 #2
det kan man godt :)
Avatar billede stigc Nybegynder
11. august 2001 - 18:32 #3
framenavn.document.funktionsnavn();
Avatar billede mo-bo Nybegynder
11. august 2001 - 18:39 #4
oki kan jeg endda skrive <body onload=\"framenavn.document.funktionsnavn();
\">
Avatar billede mo-bo Nybegynder
11. august 2001 - 18:46 #5
Virker ikke, har prøvet dette.
<html>
<head>
        <script language=\"JavaScript\">
    function trigger(){
main.document.opdater();
}
    </script>

</head>

<body bgcolor=\"ffffff\" onload=\"trigger();\">


</body>
</html>
Avatar billede nikolajdu Nybegynder
12. august 2001 - 01:23 #6
prøv

onLoad=\"parent.main.document.opdater()\"
Avatar billede roenving Novice
12. august 2001 - 05:08 #7
Og så den gamle igen:

nederst i din html-kode:

<script>opdater()</script>

selvfølgelig er en funktion en metode på den side den er i, men den burde arves til underliggende frames -- hva\'for du ikke lige kan få den til at fungere kan jeg ikke se med de tilstedeværende oplysninger.

hth
jes
Avatar billede jakoba Nybegynder
12. august 2001 - 09:50 #8
Ja og nej.

<body ... onload=\"parent.main.document.dinfunktion();\">
som nikolajdu siger.

Tænk på framesets som et træ der forgrener sig. for at komme fra en gren til en anden skal du ned til forgreningspunktet (din frameset fil) med \'parent.\' og derfra kan du så gå ud af den anden gren \'rammenavn.\' for at komme ud i den anden ramme.

Men det du foreslår er risikabelt. for onload hændelsen bliver jo trigget når DEN ramme er loaded. Vi ved ikke om den anden ramme er loadet og klar til at udføre din funktion.

det er sikrere at bruge omload i frameset filen, den bliver først trigget når begge rammer er klar:

<frameset ... onload=\"main.document.dinfunktion();\">

Hvis det ikke er praktisk bør du lave noget så de to rammer \'snakker sammen\' og finder ud af hvornår begge er loadet. Fx ved at siden i main rammen lægger en bedsked til navi rammen:
i main:
<body ... onload=\"parent.mainErKlar=true\">

i navi rammes side laver du så en lille \'må jeg nu\' funktion:
i <head i navi:
<script language=\'javascript\'> <!--

function maaJegNu( ) {
    if ( parent.mainErKlar )
        parent.main.document.dinfunktion()  // alt ok. gør det
    else
        setTimeout( \"maaJegNu()\", 100 );  // vent lidt og prøv igen
};

// --> </script>

og i <body kommandoen starter du så den spørgeroutine:
<body ... onload=\"maaJegNu()\">

mvh JakobA


Avatar billede nikolajdu Nybegynder
12. august 2001 - 09:53 #9
Ja det må du godt ;-)
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