27. maj 2004 - 01:20
Der er
19 kommentarer og 1 løsning
iFrame skal sende noget til den side iFramen sidder på.
Hej Jeg har en iFrame som sidder på i en side der hedder main.asp main.asp er en side i et rammesæt som hedder frmMain. Jeg vil gerne have noget fra min iFrame ud på den side som hedder main.asp (Altså frmMain). Hvordan gør jeg lige det ? Jeg har prøvet med : parent.frmMain.document.location.href='test.asp'; Men det fungere ikke.. Hvad gør jeg forkert ? /JK
Annonceindlæg fra Kommando
Hvis du vil opdatere den side iframen er inde i skal du bare: parent.location.href='test.asp';
Det jeg skriver helt præcis er : <Script> parent.getElementById('varenavn_2') = 'JK'; </Script> Og jeg får en fejl på den.´ Elementet på siden er en SPAN. Kan man ikke skrive det som jeg gør ? Fejlen er : Objectet understøtter ikke denne egenskab eller metode.
<script type="text/javascript"> parent.document.getElementById('varenavn_2') = 'JK'; </script> -- men den skal vel have en udløser til at opdatere varenavnet, f.eks.: <select onchange="if(this.selectedIndex>0)parent.document.getElementById('varenavn_2') = this.value;"> <option>Vælg vare</option> <option value="JK">Jensens Kaffe</option> <option value="BKI">BKI kaffe</option> <option value="Spar kaffe">Spar kaffe</option> </select>
Det er fordi jeg har en ASP side hvor man skriver noget i et input felt. Det man skriver er et varenummer. Når man så har skrevet det ind, så skal den hente vareteksten via et ASP script, dette script kører i en iFrame så hele siden ikke refreshes. iFramen skal så sætte vareteksten som den finder frem til ind i en SPAN som er på den oprindelig side. Er dette forståelig :-) /JK
Den kan slet ikke finde elementet 'varenavn_2'. /JK
Hvorfor får du så ikke dit asp til at lave en select med varenumre og varetekster på hovedsiden ?-) Hvis du har myllioner af varer er det selvfølgelig ikke vejen frem, men jeg ville da tænke den vej først !-)
Der er lidt over 100.000 varenumre, så det tager alt for lang tid.. /JK
Desuden skal den ikke kun tage vareteksten, men også de varianter varen fåes i.
Du har et frameset ... Inde i det er en af siderne main.asp ... I main.asp har du en iframe, som du bruger interface til at slå op på serveren -- og du har også nogle andre elementer, deriblandt et span med id="varenavn_2" ?-)
Kan det ikke lade sig gøre at få fat i den side som iFramen sidder på ? /JK
Den side, som iframen er i, er parent !-) Det dokument, som er på siden er parent.document !-)
Brug <body onload=""> til at udløse ... Men hvis du bruger et form-element som en input skal du bruge: <script type="text/javascript"> parent.document.getElementById('varenavn_2').value = 'JK'; </script> -- den overså jeg desværre ... -- og hvis det for eksempel er en span (altså ikke en slags redigerbart felt men et visningsområde !-) skal du: <script type="text/javascript"> parent.document.getElementById('varenavn_2').innerHTML = 'JK'; </script>
nu virker det på
http://www.waow.dk/test.htm Men der er parent siden heller ikke inde i et andet rammesæt.
Så det er vel bare et spørgsmål om at skrive : frames.['frmMain'].getElementById('varenavn_2') = 'JK';
Eller ?
/JK
Nej !-) Du skal stadig skrive præcis det samme, hvis siden er inde i tusind framesets !o]
Hehe ok :-) Det virker nu, du skal have tusinde tak for hjælpen. Mvh Jens K
Vil du venligst lave et svar. /JK
Vi tilbyder markedets bedste kurser inden for webudvikling