JavaScript解耦记

有两个页面A、B。页面A调用页面B。B页面还通过异步加载方式包含一个javascipt(例如叫:ClassHeaderEvaluation.js)文件。问题场景:A页面通过异步请求方式请求B,并在B的ClassHeaderEvaluation.js文件加载完成后,调用ClassHeaderEvaluation.js中的方法,怎样实现?

思路1:

使用循环等待的方式实现,不再累述。

思路2:

在B页面中,添加一个隐藏控件,例如id为:ClassHeaderEvaluationloaddiv,修改页面B中的代码如下:

<script type="text/javascript">
    $.getScript('Scripts/Student/ClassHeaderEvaluation.js', function () {
        var targetObj = $("#ClassHeaderEvaluationloaddiv");
        if (targetObj.length > 0)
        {
            var val = targetObj.val();
            if (val.length > 0) {
                eval(val);
            }
        }
    });
</script>

 

至此,页面A在加载页面B时,就可以在回调函数中对B页面中的控件ClassHeaderEvaluationloaddiv进行赋值,此后调用操作交由B页面自己进行加载并执行。

 

 

posted @ 2013-12-13 16:51  Shapley  阅读(806)  评论(0编辑  收藏  举报