Caricare contenuto iframe su richiesta

  • Creatore Discussione Creatore Discussione xDOMYx
  • Data di inizio Data di inizio

xDOMYx

Nuovo Utente
2 Feb 2011
25
0
1
Partendo dal presupposto che mi sto affacciando da poco su questo campo, pertanto pubblico in javascript perchè penso che la soluzione al mio problema sia da ricorrere al javascript.
Ho un iframe (a cui ho assegnato un preciso id per contraddistinguerlo).
Vorrei che quando viene caricata la pagina, l'iframe NON venga caricato (per ridurre i caricamenti agli utenti)

Dovrei fare qualcosa del genere:
Codice:
<a onlick="carica l'iframe">VISUALIZZA IFRAME</a>
<a onlick="chiudi l'iframe">RIMUOVI CONTENUTO IFRAME</a>

Il problema è che non so:
-Come fare in modo che di default l'iframe non chiami la pagina desiderata
-Come fare in modo che l'iframe richiami la pagina desiderata cliccando su un apposito testo
 
Ciao,
prova cosi
HTML:
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            function mostraIfrm(mode) {
                var ifrm = document.getElementById('ifrm');
                if(mode == 'block') {
                    ifrm.src = 'http://forum.mrwebmaster.it';
                }else{
                    ifrm.src="";
                }
                ifrm.style.display=mode;
            }
        </script>
    </head>
    <body>
        <div>
            <input type="button" value="Mostra" onclick="mostraIfrm('block')"/>
            <input type="button" value="Nascondi" onclick="mostraIfrm('none')"/>
        </div>
        <iframe style="display:none" id="ifrm" width="800" height="500">cambia browser</iframe>
    </body>
</html>
non ho testato bene e non ho commentato,se hai bisogno chiedi pure
 
Sembra andar bene.
Unico problema: non posso mettere mani all'head per inserire il codice javascript.

Si può fare qualcosa del genere?
Codice:
<input type="button" value="Mostra" onclick="ifrm.src = 'http://forum.mrwebmaster.it';"/>
 
Ignora il messaggio precedente.
L'effetto ottenuto è esattamente quello che voglio io.

Ma non si può assegnare un SRC all'iframe già dall'inizio, però NON viene caricato?
E poi con un evento onclick, allo stesso modo di come mi hai scritto sopra, anzichè cambiare l'src, semplicemente dire all'iframe che ora può caricare il contenuto?
 
puoi assegnare l'attributo src direttamente al tag <iframe>
il contenuto a questo punto però verrà caricato insieme alla pagina
puoi tenerlo nascosto e mostrarlo al click sul input
HTML:
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            function mostraIfrm(mode) {
                document.getElementById('ifrm').style.display=mode;
            }
        </script>
    </head>
    <body>
        <div>
            <input type="button" value="Mostra" onclick="mostraIfrm('block')"/>
            <input type="button" value="Nascondi" onclick="mostraIfrm('none')"/>
        </div>        
        <iframe style="display:none" src='http://forum.mrwebmaster.it' id="ifrm" width="800" height="500"></iframe>
    </body>
</html>
 
Non è il fatto che devo nascodere l'iframe, mi interessa solo che il contenuto venga caricato su richiesta e non al caricamento della pagina.
La prima soluzione che mi hai dato è perfetta.
Il problema è che ottengo l'src dell'iframe in php, e cambia da pagina a pagina, quindi non conosco l'url esatta da poter impostare in javascript.

Ora che ci penso, si può assegnare un url in php, e farlo diventare una variabile javascript?
Spero di aver reso l'idea.
 
puoi passarlo come parametro alla funzione
Codice:
function mostraIfrm(mode,url) {
                var ifrm = document.getElementById('ifrm');
                if(mode == 'block') {
                    ifrm.src = url;
                }else{
                    ifrm.src="";
                }
                ifrm.style.display=mode;
            }
e lo recuperi con php
PHP:
<input type="button" value="Mostra" onclick="mostraIfrm('block','<?php echo $url ?>')"/>

edit
dovrai passare un parametro vuoto quando vuoi nasconderla
HTML:
<input type="button" value="Nascondi" onclick="mostraIfrm('none','')"/>

edit edit
a questo punto la funzione si potrebbe semplificare cosi
Codice:
function mostraIfrm(mode,url) {
                var ifrm = document.getElementById('ifrm');
                ifrm.src = url;                
                ifrm.style.display=mode;
            }
non ho testato
 
Ultima modifica:

Discussioni simili