2013-02-11 90 views
0

我有帶上傳功能的JS文件。 從iframe窗口調用此文件。 我需要根據他的行爲向用戶顯示警報。來自iframe內的.JS文件的父函數調用

這裏是我做了什麼,這不是工作:

從JS文件:

$('#btnUpload').on('click', function(){ 
    parent.CallToParent(); 
}); 

而從UploaderWindow呼籲:

function CallToParent() 
{ 
    parent.ShowAlert(); 
} 

而在主窗口:

function ShowAlert() 
{ 
    alert('some alert'); 
} 
+0

你有沒有在iframe另一個IFRAME?或者只有一個父母和一個iframe?裏面的iframe需要顯示警告 – 2013-02-11 10:31:21

+0

JS文件 – 2013-02-11 10:36:06

回答

0

據我所知,沒有這兩個上下文之間的腳本的互操作性。

如果你的iframe內容的控制,那麼你可以實現一個「中間人」的服務管道的消息。

+0

他說,它的文件上傳,焉能不具有對內容的控制? – 2013-02-11 10:40:29

1

我認爲你是正確的。不知道click事件中的parent.CallToParent()是否真的引用了父窗口中的函數。如果沒有,那麼你可以做類似的事情。

從JS文件:

$(document).ready(function() { 
    $('#btnUpload').on('click', function() { 
     callParent(); 
    }) 
}); 

而從IFRAME:

<script type="text/javascript" src="/common/jq.js"></script> 
<script type="text/javascript" src="c.js"></script> 
<script> 
    function callParent() { 
     parent.fn(); 
    } 
</script> 

<input id="btnUpload" type="button" /> 

主文件

<script> 
    function fn() { 
     console.log('Parent function called'); 
    } 
</script> 

<iframe src="b.html"></iframe> 
+0

它這麼想的工作 – 2013-02-11 10:49:30

+0

見我上面貼的代碼,它爲我工作。我懷疑你是它的渲染之前綁定按鈕上的事件。你是否在事件處理程序中嘗試了'console.log'? – 2013-02-11 11:07:10

+0

我可以從JS調用它的父功能,但這種功能,它無法找到下一個父。但是,當我直接從iframe調用它的父母時,它工作正常。有什麼區別? – 2013-02-11 11:14:24

相關問題