从子页面调用父页面中的javascript函数

时间:2017-05-05 01:42:18

标签: javascript jquery html knockout.js

我需要从子页面调用主页面中的函数。下面我有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>

1 个答案:

答案 0 :(得分:0)

在您的场景中,您实际上是在关闭模式,即关闭iframe也是如此,因此在关闭模式后您无法在子页面中获取父对象。

你应该这样做

active.aspx

self.btnExit = function () {
    parent.main();
}

main.aspx

function main(){
    $('#divInterActiveContent').modal('hide');        
    // Do your stuff
}

通过这种方式你可以调用父函数,而不是将子模型隐藏在子函数中,将其隐藏在父函数中以及你想要做的下一个东西。

相关问题