2013-06-20 51 views
0

我有,我有以下代碼的iframe:調用父函數與iframe與Firefox

$(document).ready(function(){ 
    $('.checksum').click(function(){ 
     window.parent.Clickarunsuministro($(this).val()); 
    }) 
}) 

當你點擊.checksum,我想調用父功能。它完美地在Chrome和IE,但不能在Firefox。

出現的錯誤是:

Permission denied to access property 'Clickarunsuministro' 

任何想法的問題可能是什麼?

+1

是您在同一個域作爲父iframe中,你是在本地運行的應用程序 –

+0

你可以嘗試初始化後,通過對象的子窗口 –

回答

0

I幀,它們運行的​​頁面,一般不允許直接出於安全原因互動。相反,你可以使用message事件所屬的文檔和IFRAME之間發送字符串和JSON對象。見https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage?redirectlocale=en-US&redirectslug=DOM%2Fwindow.postMessage有關如何以及爲什麼一些細節。

您的代碼可能在Chrome和IE瀏覽器的權利,但它是一個安全的賭注,它很快就不會,所以更好地面向未來你的代碼在這種情況下。

0

您可以嘗試使用jQuery的自定義事件

在IFRAME

$(document).ready(function(){ 
    $('.checksum').click(function(){ 
     $(window).trigger('clickarunsuministro', {data: $(this).val()}) 
    }) 
}) 

在父

$('<frame-selector>').on('clickarunsuministro', function(event){ 
    console.log('data', event.data) 
})