16. november 2002 - 05:17
Der er
20 kommentarer og 1 løsning
Ændre variabel fra iframe
Hey :) Jeg sidder med en side, hvor jeg har en iframe. I den iframe vil jeg gerne ændre en variabel i "hoved-dokumentet" Jeg troede jeg kunne klare det med parent.variablen = "noget" Men det virker ikke. Nogen der ved noget om den slags?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
16. november 2002 - 06:33
#1
Prøv noget ala parent.opener.formname.formfield.value='fra iframe'; det magiske ord er her "parent.opener" Dog utestet
Slettet bruger
16. november 2002 - 07:10
#2
top.location.reload(); Bruger jeg selv til at genload "hoveddokumentet" fra en iframe! top.forms.formnavn.variabelvilskifte.value = newvalue; Skulle kunne klare det for dig (også)!
Slettet bruger
16. november 2002 - 07:18
#3
NB: Ovenstående går kun hvis "hoveddokumentet" ikke er representeret i en anden frame! Den skal være toppen i frame heirakiet!
16. november 2002 - 16:33
#4
Er ked af at sige det, men det virker ikke :( Ved ikke lige hvor i fik den ide fra at det er et formfelt :) Det er en ganske almindelig variabel jeg skal have ændret inde fra iframen Koden i "hoveddokumentet" ser sådan her ud var changed = 0 ; Og i iframen ville jeg så gerne gøre noget ala dette <body onkeyup="parent.changed = 1 ;">
Slettet bruger
16. november 2002 - 16:37
#5
tricky! et workaround kunne være <input type=hidden name=changed value=0>
Slettet bruger
16. november 2002 - 16:43
#6
Ligger de to filer på det samme domæne? For hvis de gør, burde dit script virke.
16. november 2002 - 16:54
#7
phoenixv > Jep, de ligger på samme domæne.
16. november 2002 - 17:01
#8
Ved ikke om fejlen kan ligge et andet sted. Det eneste sted det ellers kunne ligge er i denne kode, men synes ikke jeg kan se nogen fejl der if ( changed == 0 ) { frames.editor.document.body.innerHTML = "" ; frames.editor.document.body.focus() ; changed = 0 ; } else { if ( !confirm("Save changes to document?") ) { frames.editor.document.body.innerHTML = "" ; frames.editor.document.body.focus() ; changed = 0 ; } else { savedoc() ; } }
Slettet bruger
16. november 2002 - 17:02
#9
Er changed en global variabel? P.S. Smid et link.
16. november 2002 - 17:06
#10
http://www.lequet.com/test/ En global variabel? Ikke sikker, men du kan jo selv se efter. Jeg kan ændre den fra et popup vindue, så det må jo være muligt fra en iframe :)
Slettet bruger
16. november 2002 - 17:10
#11
Jo, changed er global (modsat lokal, dvs. forbeholdt én funktion)... Hvad er fejlen egentlig?
Slettet bruger
16. november 2002 - 17:11
#12
OK, jeg kan godt se fejlen... Prøv at alerte changed ved klik på "ny".
16. november 2002 - 17:12
#13
OK, var ikke lige sikker der :) Fejlen er : Hvis du trykker på "New file" ikonet sletter den teksten i feltet som den skal. Men meningen er at hvis teksten har været ændret siden sidste save, skal den spørge først. Det vil sige at hvis du skriver noget, og trykker "New file" skal den spørge dig først, det gør den ikke
16. november 2002 - 17:12
#14
OK, 2 sek.
16. november 2002 - 17:13
#15
Den sige 0 uanset hvad
Slettet bruger
16. november 2002 - 17:18
#16
Jeg er lige kommet i tanke om, at du ikke kan registrere tryk på keyboardet, når dokumentet er sat til designMode. Men du kan jo lave et før-efter check. Når der trykkes på "ny"-ikonet aflæser du iframens innerHTML. Hvis den er i udgangspositionen, skal dokumentet ikke gemmes. Ellers skal det.
16. november 2002 - 17:21
#17
Ahh der kan man bare se :) Prøver lige at rode med det
Slettet bruger
16. november 2002 - 17:22
#18
Men så er det selvfølgelig også vigtigt, at du aflæser innerHTML'et, når iframen loades. Gem det i en variabel og sammenlign så, når der trykkes på new file.
16. november 2002 - 17:25
#19
Jep, det må være løsningen :) Tak for hjælpen, smider du et svar?
16. november 2002 - 17:33
#20
Sådan, fik det til at virke :)
Slettet bruger
16. november 2002 - 19:20
#21
Svar
Vi tilbyder markedets bedste kurser inden for webudvikling