2011-01-06 22 views
12

Ho un tale problema. Ho bisogno di aprire iframe in fancybox (ho bisogno di iframe perché devo sfogliare i link nel documento aperto e rimanere in fancybox), ma voglio mettere il contenuto in iframe dalla variabile, non attraverso l'attributo src (ho già ottenuto contenuto da AJAX (ho bisogno di fare alcuni controlli sul contenuto prima di metterlo in iframe, quindi non c'è modo di farlo al posto della query AJAX), quindi non ho bisogno di un'altra query).jQuery aggiungi iFrame con contenuto

Fancybox non consente di utilizzare l'attributo 'contenuto' con 'tipo': 'iframe'. Così ho deciso di creare iframe in modo dinamico, inserire il mio contenuto in esso e mostrare iframe di fancybox come un blocco regolare.

E 'come

jQuery('<iframe id="someId"/>').appendTo('body').contents().find('body').append(content); 

E di

jQuery('<iframe id="someId"/>').fancybox(); 

Ma la prima parte non funzionano. Riesco a vedere l'iframe che è stato aggiunto alla pagina ma senza alcun contenuto (ho una pagina html completa nel contenuto delle variabili, ma quando provo ad aggiungere solo del testo non funziona altrettanto bene).

Cosa ho fatto di sbagliato? Forse c'è un altro modo per fare ciò di cui ho bisogno?

Grazie per il vostro consiglio!

+0

avuto lo stesso problema, la prego di dirmi se hai risolto il problema di cui sopra @krasilich –

risposta

3

Che cosa succede se si divide quella linea in due:

jQuery('<iframe id="someId"/>').appendTo('body'); 
jQuery('#someId').contents().find('body').append(content); 

poi cambiare di selezione sia corretta, prima che stava creando un nuovo iframe, non inserendolo nel DOM e il fancybox chiamata su di esso, tuttavia questo dovrebbe funzionare:

jQuery('#someId').fancybox(); 
+0

posso vedere iframe vuoto nel profondo del mio pagina. Inserisco testo semplice contenuto (var content = 'Text in Iframe'). E non ci sono errori in Firebug. Il corpo dell'elemento in iFrame è vuoto – krasilich

+0

@krasilich Hai provato il codice che ho suggerito? Ho modificato la mia risposta con una nuova scoperta. –

+0

var content = 'Testo in iframe'; jQuery ('