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

JavaScript019

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

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

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

function f1(){

    // 监听iframe的onload事件

    window.frames['iframename'].onload = function() {

        //其他语句

    }

    refresh()

}

function refresh(){

    window.frames['iframename'].location.href = '/../../href.jsp'

}

今天忽然看到几年前的问题。 为了给后面的新人一些帮助。把问题的解决方法说一下。

存在ajax的情况时,函数顺序是会出现这个问题的,因为大家都知道ajax是异步处理的,他请求发出后不会等结果回来,而是直接向下执行后面的代码。

如果需要通过ajax的返回结果 再进行后面的流程,那么需要把ajax的异步请求关闭。这样它就可以顺序进行了。如JQuery关闭异步的方法如下:

function load_val(){

    var result

    $.ajax({

        dataType:'json',

        url : 'test.php',

        async:false,  //这里选择异步为false,那么这个程序执行到这里的时候会暂停,等待数据加载完成后才继续执行

        success : function(data){

            result = data

        }

    })

    return result

}