Avatar billede cardinale Nybegynder
29. maj 2002 - 22:17 Der er 9 kommentarer og
1 løsning

cross frame scripting

Jeg har et meget simpelt spørgsmål - men jeg kan ikke huske det. Jeg har lært det engang...
Jeg har en side bestående af 2 frames - en main frame og en hukommelses frame.
I main framen skal man indtaste sit navn og trykke submit. Dette navn skal føres over i hukommelses framen hvor det skal gemmes.
Ved tryk på submit skal brugeren sendes til en ny side hvor der står Hej xxx.

Hvordan er det lige det gøres?

/woo
Avatar billede jakoba Nybegynder
29. maj 2002 - 22:26 #1
Hver frame er et komplet window-objekt der kan ligge et html-dokument.

og framesettet er også sådan et window-objekt.

Så du skal blot adressere dig fra det ene window-objekt over i det andet:
    parent.andenrammesnavn.document.write("He He");

parent      fra ramme op i framesettet
.andenrammenavn  fra framesettet op i en anden ramme.

og så er du overe i den anden ramme og kan lege med objekter og vatiabler der.

mvh JakobA
Avatar billede cardinale Nybegynder
29. maj 2002 - 22:42 #2
Jeg kan virkelig ikke huske en skid af det - så kan du stikke mig en køre klar kode?
Både fra mainframe og hukommelsesframe....
Så knalder jeg lige 30 points oveni hatten.
Avatar billede =maddog= Nybegynder
29. maj 2002 - 23:50 #3
<html>
<script>
onload = setframes;
function setframes() {
if (document.frames.length<2) setTimeOut(setframes,"20");
store.document.open();
store.document.write("<html><scr"+"ipt>value1=\"Noname\";value2=\"Nothing\";</scr"+"ipt></html>");
store.document.close();
main.document.open();
main.document.write("<html><body><h1>Hej sømand</h1>"
                    +"<form action=\"dennyside.html\" onsubmit=\"top.store.value1=this.navn.value; top.store.value2=this.work.value;\">"
                    +"Navn:<input type=\"text\" name=\"navn\" value=\"Tast et navn\">"
                    +"Stilling:<input type=\"text\" name=\"work\" value=\"Nuværende stilling\">"
                    +"<input type=\"submit\" value=\"Gå videre\">"
                    +"</form>"
                    +"</body></html>");
main.document.close();
}
</script>
<frameset rows="*,100%">
<frame name="store" src="" frameborder="0" marginwidth="0" marginheight="0" noresize scrolling="auto">
<frame name="main" src="" frameborder="0" marginwidth="0" marginheight="0" noresize scrolling="auto">
</frameset>
</html>

den gemmer de to værdier herfra i
top.store.value1 og top.store.value2
du kan ændre på det efter forgodtbefindende.
i det her tilfælde går den til dennyside.html som kunne se sådan ud
<html><body>
<script>document.write("Hej "+top.store.value1+".\n Arbejder du stadig med "+top.store.value2+"?\n");</script>
</body></html>
god arbejdslyst.
Avatar billede =maddog= Nybegynder
29. maj 2002 - 23:51 #4
måske jeg liiiiige skulle lave et svar :).
Avatar billede =maddog= Nybegynder
29. maj 2002 - 23:57 #5
ok jeg jokker lidt rundt her den første linje i setframes skal naturligvis være
if (window.frames.length<2) window.setTimeOut(setframes,"20");
Avatar billede cardinale Nybegynder
29. maj 2002 - 23:58 #6
jeg er tilfreds maddog.
Jakoba - jeg kunne ikke bruge dit til noget - selvom det nok er rigtigt. Jeg skulle bruge det lidt mere udførligt..
Avatar billede =maddog= Nybegynder
29. maj 2002 - 23:58 #7
og resten skal i else {  }. kæft hvor det kører. undskylder virkelig.
Avatar billede =maddog= Nybegynder
30. maj 2002 - 00:00 #8
Avatar billede =maddog= Nybegynder
30. maj 2002 - 00:01 #9
vil du have en klat jakoba? det var jo egentlig dig der kom først med document.write ideen.
Avatar billede jakoba Nybegynder
30. maj 2002 - 00:21 #10
nej tak :-)
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