2013-02-11 85 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

相关问题