js函数执行顺序,怎麼让一个函数执行完再执行下面的程序

function f1(){
refresh();//刷新href.jsp页面
其他函数
}
function refresh(){
window.frames['iframename'].location.href = '/../../href.jsp';
}
在调用f1()时总是先执行其他函数再回来执行refresh(),怎麼让refresh()执行完再执行下面的语句

这个代码肯定是先执行了refresh,然后执行了其他语句。


你想要的是不是refresh之后iframe里的页面加载完再执行其他语句?

function f1(){
    // 监听iframe的onload事件
    window.frames['iframename'].onload = function() {
        //其他语句
    };
    refresh();
}

function refresh(){
    window.frames['iframename'].location.href = '/../../href.jsp';
}

追问

这个代码是先执行了refresh,不过refresh()会把window.frames['iframename'].location.href = '/../../href.jsp'跳过或者说没有执行完这一句,就接着执行其他语句了,我现在想要的理想效果是refresh完全执行了再接着执行。(我这个是GIS项目,refresh是刷新包含地图的iframe页面)

追答

所以给iframe加了onload事件。在onload事件里写其他语句之后就可以在iframe加载完之后执行其他语句了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-28
setTimeout(其他函数,1)追问

这个我试过,还是没达到理想效果

本回答被提问者采纳
相似回答