2011-01-22 8 views
6

Quando provo ad ottenere il contentwindow di un iframe, utilizzandoIframe ContentWindow

var contentWindow = document.getElementbyId('iframe').contentWindow 

a volte restituisce "Finestra indefinito" perché il contentWindow non esiste. Non riesco ad eseguire un controllo per esso usando

if (contentWindow === unidentified) or if (contentWindow === null) 

in quanto solo gli errori di fuori del codice se cerco di afferrare valori fuori di esso. Qualcun altro si è imbattuto in questo problema e ha trovato una soluzione?

+3

'non identificato' mi ha fatto sorridere :) Siamo stati tutti principianti una volta. –

risposta

6

Lo stai digitando correttamente? getElementByID non getElementbyId. Hai confermato che questo restituisce un elemento prima di interrogare contentWindow? Lo stai interrogando dopo che si carica?

Stai facendo gEBI dopo il DOM pronto o il caricamento della pagina? Hai inserito avvisi sull'elemento? Il dominio nell'iframe è uguale al dominio di origine? Quale browser utilizzate?

if (contentWindow === unidentified) or if (contentWindow === null) 

Non esiste una cosa come unidentified è undefined. Rallentare ed essere precisi.

+1

+1 per i tuoi occhi acuti ... – Wazzzy

2

Prova questo

var iframeElem = parent.document.getElementById("iframe"); 
var win = iframeElem.contentWindow; 
-2

provare a specificare quali sono i dati che si desidera dall'oggetto si chiama qui

var contentWindow = document.getElementById('iframe') 

facendo questo

var contentWindow = document.getElementById('iframe').contentWindow 

Questo ha funzionato per me