Ace forklarede den 06-09-2010:
> Hej
>
> Er det muligt, at sjule og vise et <div> i et iFrame, ved brug at
> onClick på "hovedsiden" (den side der indeholder iFrame'et)?.. og
> i givet fald, hvordan?
>
> Jeg har et <div> på min side, som jeg gerne vil have, at når der
> trykkes på det, så skjuler eller viser et bestemt <div> som
> befinder sig i et iFrame på siden. Jeg havde håbet, at man kunne
> gøre noget a la;
>
> page1.htm:
> <html>
> <head>
> </head>
> <!--VISER LAYER VED KLIK-->
> <script type="text/javascript">
> function show(id) {
> if (document.getElementById) {
> var el = document.getElementById(id);
> el.style.display = (el.style.display = 'block');}}
> </script>
>
> <!--SKJULER LAYER VED KLIK-->
> <script type="text/javascript">
> function hide(id) {
> if (document.getElementById) {
> var el = document.getElementById(id);
> el.style.display = (el.style.display = 'none');}}
> </script>
> <body>
> <div onClick="document.iframe1.show('div1');">Vis DIV</div>
> <div onClick="document.iframe1.hide('div1');">Skjul DIV</div>
> <iframe name="iframe1" src="page2.htm"><iframe>
> </body>
> </html>
>
> page2.htm:
> <html>
> <head>
> <!--VISER LAYER VED KLIK-->
> <script type="text/javascript">
> function show(id) {
> if (document.getElementById) {
> var el = document.getElementById(id);
> el.style.display = (el.style.display = 'block');}}
> </script>
>
> <!--SKJULER LAYER VED KLIK-->
> <script type="text/javascript">
> function hide(id) {
> if (document.getElementById) {
> var el = document.getElementById(id);
> el.style.display = (el.style.display = 'none');}}
> </script>
> </head>
> <body>
> <div id="div1" style="width:100%; height:100%;
> background-color:green; display:none;"></div>
> </body>
> </html>
>
> . men så nemt er det åbenbart ikke :(
>
> Håber der er nogen der kan hjælpe mig.
>
> Venligst
> Ace
Umiddelbart kan det ikke lade sig gøre at programmeret til et dokument
fra et andet.
Den side du henter ind i iframe, har sit eget dokument, og det er
derfor ikke den rigtige document variable du anvender ved
programmeringen.
Man kan godt - men det er ret tricky - svjh, noget med at en funktion i
dokumentet på hovedsiden skal kalde en funktion på iframe-siden. Og
denne cross dokument programmering, er kun tilladt i helt specielle
tilfælde (sikkerhed).
Umiddelbart er det nok nemmere (og mere fremtidssikret), at designe
uden iframen.
Du kan prøve at give din iframe en id, og bruge den som referance for
dokumentet.
function hide(id) {
var min_frame = document.getElementById( 'min_iframe');
var el = min_frame.contentWindow.document.getElementById( '');
el.style.display = 'none';
}
Ved ikke om det er crossbrowser, eller hvor meget bagud kompatibelt det
er, men burde vist være det nogenlunde - og det kræver at begge sider
ligger på samme domæne.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk