2013-08-04 13 views
24

Durante il debug di codice jQuery sul loro sito (tramite Chrome Developer Toolbar)Iframe senza src ma ha ancora dei contenuti?

ho notato che i loro esempi sono dati sotto Iframe:

Here - for example v'è un campione che è sotto un Iframe, ma dopo indagando, vedo che l'Iframe non ha SRC

l'immagine mostra tutto

enter image description here

Domanda:

È possibile impostare il contenuto su un Iframe senza impostare il relativo SRC?

p.s. questo menu mi mostra anche un contenuto vuoto

enter image description here

risposta

26

Sì, è possibile caricare un contenuto vuoto (senza src specificato) e successivamente applicare ad esso utilizzando script.

Vedere: http://api.jquery.com/jquery-wp-content/themes/jquery/js/main.js (riga 54 e sotto).

O semplicemente provare:

<iframe></iframe> 

document.querySelector('iframe')[0] 
     .contentDocument.write("<h1>Injected from parent frame</h1>") 
+1

Yup, credo che sia esso http : // jsbin.it/ezekuw/4/edit –

+0

$ ('iframe') [0] .contentDocument.write ("

Injected from parent frame

") sembra far ruotare costantemente l'icona di caricamento nella scheda del browser. – Mike

+0

usa document.close() per chiudere scrivendo – ChanX

1

provare a dare:

src ="javascript:false;" 
+1

Io non la penso così ,,, http: //i.stack.imgur.com/8zghY.png (http://jsbin.com/ezekuw/1/edit) –

3

Certo. È possibile ottenere un riferimento all'oggetto document s' il iframe con

var doc = iframe.contentDocument; 

e quindi è possibile creare e aggiungere elementi come si fa nel documento corrente.

Se l'iframe non ha un attributo src, conterrà comunque un documento vuoto. Credo tuttavia che almeno le vecchie versioni di IE richiedano l'attributo src da impostare, altrimenti l'iframe non avrà un documento.

Vedere anche: contentDocument for an iframe.

+0

(e naturalmente) solo sullo stesso dominio .... o sottodominio con document.domain .... –

+0

Se l'attributo 'src' è impostato, allora sì, il contenuto può solo accessibile se il documento caricato proviene dallo stesso dominio. –

+0

Mi chiedo perché l'abbiano fatto .... è molto più semplice avere dei piccoli file html impostati come SRC piuttosto che ottenere i loro contenuti e iniettarli in un iframe .... Mi chiedo davvero se c'è qualcosa dietro questa decisione –

3

Sembra che questo è il soluzione più compatibile tra i browser e inoltre è riconosciuta dal W3C

<iframe src="about:blank"></iframe> 
Problemi correlati