2015-10-01 6 views
6

Sto usando l'API di tempificazione delle risorse w3c. window.performance.getEntriesByType ("risorsa"); Questo fornisce un elenco di risorse inclusi iframe. Tuttavia, per ottenere le risorse degli iframe incorporati, ho bisogno di ottenere l'oggetto performance dell'iframe che richiede di avere il riferimento al suo nodo/elemento DOM.Ottieni un elemento DOM iframe dato il suo URL

 var myiframe2 = $("#myiframe2"); 
     var myiframeContentWindow = myiframe2[0].contentWindow; 
     var iframeContentPerf = myiframeContentWindow.performance; 

La domanda è, come entrare in possesso di riferimento di nodo del iframe se tutto quello che so è l'URL del iframe, che è tutto quello che so (io non so id del iframe o il nome a differenza del codice di esempio sopra).

Altro che scorrere gli elementi del documento e quindi filtrare gli iframe e confrontare l'URL dell'iframe con quello che l'API di sincronizzazione delle risorse ha restituito, esiste un modo semplice per ottenere il nodo DOM dell'iframe (dato l'URL dell'iframe)?

risposta

6

Se l'URL del iframe non è cambiato, si può cercare di farlo direttamente con i selettori CSS utilizzando l'URL esatto:

document.querySelector('iframe[src="http://example.org"]'); 

Se l'URL cambierà ma avete una parte unica per iframe (che può identificare un iframe specifico):

document.querySelector('iframe[src*="example.org/some/url"]'); 
+0

Ottengo un null dalla chiamata document.querySelector. Qualche soluzione? – anjanb

+0

Ottengo null anche se provo document.querySelector ('iframe [src * = "example.org/some/url"]'); chiama – anjanb

+0

Avrei bisogno di pezzi più specifici del tuo codice per aiutarti (puoi fare un esempio: https://gist.github.com/) – avetisk