Javascript 从iframe内部从.JS文件调用父函数
我有带上传功能的JS文件。 此文件是从iframe窗口调用的。 我需要根据用户的操作向其显示警报 以下是我所做的,但不起作用: 来自JS文件:Javascript 从iframe内部从.JS文件调用父函数,javascript,asp.net,html,iframe,Javascript,Asp.net,Html,Iframe,我有带上传功能的JS文件。 此文件是从iframe窗口调用的。 我需要根据用户的操作向其显示警报 以下是我所做的,但不起作用: 来自JS文件: $('#btnUpload').on('click', function(){ parent.CallToParent(); }); function CallToParent() { parent.ShowAlert(); } function ShowAlert() { alert('some alert'); } $(do
$('#btnUpload').on('click', function(){
parent.CallToParent();
});
function CallToParent()
{
parent.ShowAlert();
}
function ShowAlert()
{
alert('some alert');
}
$(document).ready(function () {
$('#btnUpload').on('click', function() {
callParent();
})
});
<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" />
并从UploaderWindows调用:
$('#btnUpload').on('click', function(){
parent.CallToParent();
});
function CallToParent()
{
parent.ShowAlert();
}
function ShowAlert()
{
alert('some alert');
}
$(document).ready(function () {
$('#btnUpload').on('click', function() {
callParent();
})
});
<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" />
并在主窗口上:
$('#btnUpload').on('click', function(){
parent.CallToParent();
});
function CallToParent()
{
parent.ShowAlert();
}
function ShowAlert()
{
alert('some alert');
}
$(document).ready(function () {
$('#btnUpload').on('click', function() {
callParent();
})
});
<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" />
据我所知,这两个上下文之间没有脚本的互操作性
如果您可以控制iframe的内容,那么您可以实现一个“中间人”服务来传递消息。我认为您做得很正确。不知道
click
事件中的parent.CallToParent()
是否真的引用了父窗口中的函数。如果没有,那么你可以做类似的事情
来自JS文件:
$('#btnUpload').on('click', function(){
parent.CallToParent();
});
function CallToParent()
{
parent.ShowAlert();
}
function ShowAlert()
{
alert('some alert');
}
$(document).ready(function () {
$('#btnUpload').on('click', function() {
callParent();
})
});
<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" />
和来自iframe:
$('#btnUpload').on('click', function(){
parent.CallToParent();
});
function CallToParent()
{
parent.ShowAlert();
}
function ShowAlert()
{
alert('some alert');
}
$(document).ready(function () {
$('#btnUpload').on('click', function() {
callParent();
})
});
<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" />
函数callParent(){
parent.fn();
}
主文件
<script>
function fn() {
console.log('Parent function called');
}
</script>
<iframe src="b.html"></iframe>
函数fn(){
log('调用父函数');
}
iframe中是否有其他iframe?或者只是iframe中的一个家长和一个iframe?JS文件,需要显示警报。他说这是一个文件上传者,他怎么能不能控制它的内容呢?请看我上面发布的代码,它对我有用。。我怀疑您正在将事件绑定到按钮上,然后再渲染它。您是否在事件处理程序中尝试了console.log
?我可以从JS调用它的父函数,但是从这个函数它找不到下一个父函数。但是当我直接从iframe打电话给它的家长时,工作就很好了。有什么区别?为什么要调用CallToParent
,就好像它是父窗口中定义的函数一样?它位于包含JS文件的同一页面中。因此,它位于同一窗口的范围内。