我需要从子页面调用主页面中的函数。下面我有2页。 1. main.aspx和子页面是2.active.aspx。在active.aspx中,我有一个名为&#34的按钮;退出' 。当我点击退出按钮时,我需要关闭模态弹出窗口,然后我需要调用函数" main"这是主页面中的javascript函数。问题是我无法从子页面调用该函数。
Main.aspx
<html>
<head>
<script type="text/javascript">
function main() {
//do main work
}
</script>
</head>
<body>
<div>
<input type="button" class="ic-grid-encode center-btn" title="Interactive"
data-toggle="modal" data-target="#divInterActiveContent" />
</div>
<div class="modal fade" id="divInterActiveContent" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document" align-self="" center;"="">
<iframe id="interId" src="active.aspx"></iframe>
</div>
</div>
</body>
</html>
Active.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<link href="../Content/bootstrap.css" rel="stylesheet">
<script src="../Scripts/jquery-3.1.1.js"></script>
<script src="../Scripts/bootstrap.js"></script>
<script src="../Scripts/knockout-3.4.2.js"></script>
<script src="../Scripts/jquery-ui-1.12.1.min.js"></script>
<script type="text/javascript">
self.btnExit = function () {
parent.$('#divInterActiveContent').modal('hide');
//after closing the popup i need to call the javascript function defined in the main page
//i.e i need call function main which is there in the main window.
}
</script>
</head>
<body>
<form id="frmInterActiveEncode">
<div class="container">
<div class="row" style="margin-top: 10px;">
</div>
<hr>
<br>
<hr>
<div class="row">
<input type="button" value="Submit" class="btn btn-primary" data-bind="event: { click: btnSubmit }">
<input type="button" value="Exit" class="btn btn-primary" data-bind="event: { click: btnExit }">
</div>
</div>
</form>
</body>
</html>
答案 0 :(得分:0)
在您的场景中,您实际上是在关闭模式,即关闭iframe也是如此,因此在关闭模式后您无法在子页面中获取父对象。
你应该这样做
active.aspx
self.btnExit = function () {
parent.main();
}
main.aspx
function main(){
$('#divInterActiveContent').modal('hide');
// Do your stuff
}
通过这种方式你可以调用父函数,而不是将子模型隐藏在子函数中,将其隐藏在父函数中以及你想要做的下一个东西。