2010-03-31 17 views
6

HI, Ho trovato sorprendentemente problemi, nel browser Chrome, nelle funzioni javascript della finestra di chiamata. Se una finestra con una funzione javascript definita in essoCome chiamare la funzione finestra genitore nel browser Chrome?

<script type="text/javascript"> 
    function dolink() { 
    . . . 
    } 
</script> 

e ho un iframe all'interno di quella finestra che rende questa chiamata utilizzando jquery

<script type="text/javascript"> 
$(function() { 
     $('a.arglink').click(function() { 
     window.parent.dolink($(this).attr('href')); 
     return false; 
     }); 
}); 
</script> 

la chiamata Dolink funzione non funziona Stepping con chrome javascript debugger, sembra che window.parent.dolink sia indefinito. È di progettazione o un errore che ho fatto? In Firefox e IE funziona perfettamente.

+0

è l'iframe sullo stesso dominio del documento padre? –

risposta

10

finalmente trovato!

Sembra che il browser Chrome non consenta di fare riferimento a una finestra padre che accede alle pagine con il file :. In effetti ho provato il codice sopra con i file sulla mia macchina, quindi con un url come file:///C:/mytests/mypage.html. Se inserisco la pagina in un server Web, tutto funziona come previsto.

+2

Ho lo stesso problema con chrome, ma non viene utilizzato alcun protocollo di file, è puro http – lisak

+1

appena testato, che non funziona: C // Voglio indietro il mio upvote – almosnow

2

Cosa succede ad usare frameElement e ownerDocument

<script type="text/javascript"> 
$(function() { 
     $('a.arglink').click(function() { 
     window.frameElement.ownerDocument.parentWindow.dolink($(this).attr('href')); 
     return false; 
     }); 
}); 
</script> 
+0

non funziona su alcun browser –

+0

right, dimenticato qualcosa – Alsciende

4

si dovrebbe chiamare il codice del genere

if(function != undefined) 
{ 
$(function() { 
     $('a.arglink').click(function() { 
     window.parent.dolink($(this).attr('href')); 
     return false; 
     }); 
}); 
} 
+0

Questo non ha davvero bisogno di essere all'interno di una funzione anonima ... –

Problemi correlati