2012-04-19 9 views
6

Ho un iframe e ho bisogno di catturare l'attributo src all'interno di una variabile javascript. Ecco come il mio iframe assomigliaOttieni iframe param dall'interno dell'iframe stesso

<iframe id="iframe_module_46081" name="iframe_module_46081" src="//myurl.com/tabs/495/campaigns/0ed3ffa8-5050-4a18-a5e3-f348d12a1304?signature=6aa3005368f163539976460246f2f0839c0fb3e3&amp;id=678326"> 
<script>$(document).ready(function(){ 
    var name = window.name; 
    var src = ????; 
}) 
</script> 
</iframe> 

io sono in grado di ottenere il nome attraverso window.name ma non l'attributo src. Qualche idea?

+0

'top.document.getElementsByName (window.name) [0] .src' dovrebbe farlo –

+1

@GGG: Questo non funzionerà tra domini. – SLaks

+0

@SLaks nulla funzionerà cross domain =/tranne 'document.location', ovviamente, ma ho pensato che non funzionasse per lui per qualche motivo. –

risposta

14

Se consentito dai controlli interdominio, provare window.frameElement.src. Altrimenti, sei sfortunato e lasciato da solo con location.href.

+2

+1 per 'frameElement', ho sempre dimenticato che esiste –

+0

Perché la scelta di' location.href' è sfortunata? –

+2

Perché l'iframe avrebbe potuto essere allontanato dalla sua posizione originale –

0

Prova questo per favore:

var src = $('#iframe_module_46081').attr('src'); 
+0

No; questo è solo per la pagina madre – SLaks

+0

di quanto non abbia capito la sua domanda. – WolvDev

+0

A quanto ho capito, vuole ottenere l'attributo 'src' dell'iframe contenente la finestra in cui viene eseguito lo script. –

3

Siete alla ricerca di document.location, proprio come qualsiasi altro documento.
Ogni frame riceve il proprio document.

1
var src = top.document.getElementById("iframe_module_46081").src; 

Se non si desidera utilizzare il selettore jQuery.

+0

Grazie a tutti, ma ho appena visto che il dominio dell'iframe superiore è diverso, quindi ho problemi di crossdomain. – Leon

Problemi correlati