Javascript 如何知道location.reload()何时完成?

Javascript 如何知道location.reload()何时完成?,javascript,jquery,iframe,Javascript,Jquery,Iframe,我想重新加载一个框架,重置页面的所有值和内容,但根页面继续运行脚本。问题是,在重新加载页面所需的时间内,请求被发送到页面javascript,导致错误,因为资源未加载 top.document.getElementById("designer").contentWindow.location.reload() top.document.getElementById("designer").contentWindow.getCSS() 正如您在这里看到的,页面可能无法及时重新加载,那么我该如何解

我想重新加载一个框架,重置页面的所有值和内容,但根页面继续运行脚本。问题是,在重新加载页面所需的时间内,请求被发送到页面javascript,导致错误,因为资源未加载

top.document.getElementById("designer").contentWindow.location.reload()
top.document.getElementById("designer").contentWindow.getCSS()
正如您在这里看到的,页面可能无法及时重新加载,那么我该如何解决这个问题


有没有一种方法可以暂停javascript执行,直到location.reload()返回true或其他内容?

您可以为iframe设置
onload
处理程序,以便
重新加载
不会触发

示例代码:-

function Test() {

    iframe = document.getElementById('ABCD');
    iframe.onload = function() {
        location.reload(true);
    }
    //.... 
}
或者,如果您想添加一些时间延迟,请尝试以下操作:-

function Test() {
    iframe = document.getElementById('ABCD');
    iframe.onload = function() {
        setTimeout(function() {location.reload(true)}, 5000);
    }
    //....
}

您可以为iframe设置
onload
处理程序,以便
reload
不会触发

示例代码:-

function Test() {

    iframe = document.getElementById('ABCD');
    iframe.onload = function() {
        location.reload(true);
    }
    //.... 
}
或者,如果您想添加一些时间延迟,请尝试以下操作:-

function Test() {
    iframe = document.getElementById('ABCD');
    iframe.onload = function() {
        setTimeout(function() {location.reload(true)}, 5000);
    }
    //....
}

我想我能做的就是在iframe上设置一个事件侦听器,直到document.ready发送一个ACK继续?假设这不是跨域的,只需为
加载
事件添加一个侦听器。您是否碰巧有一个示例/我想我能做的是在iframe上设置一个事件侦听器,直到document.ready发送一个ACK继续?假设这不是跨域的,只需为
加载
事件添加一个侦听器。您是否碰巧有一个示例/@fallereneaper:-是的。我尝试添加一个示例代码供您参考。希望有帮助!!!我觉得这可能正是我想要的。试图稍微解释一下代码。我的目标是:为iframe设置一个事件处理程序。重新加载iframe,暂停javascript的执行,直到onload完成,然后继续?是的,这对你来说是可行的!!!另外,如果它对你有帮助的话,别忘了接受它作为回答!!:)@一个常见的错误是试图暂停JavaScript的执行,这是不可能的。你必须做的是把你的代码分成两部分;在延迟之前和延迟之后。将延迟后应该运行的代码放入设置为事件处理程序的函数中。如果我有足够的模块化,它应该不会太糟糕。我去看看。等待一些服务器启动,然后我将测试这个答案,然后给它竖起社会大拇指!:)@法伦雷珀:是的,那就可以了。我尝试添加一个示例代码供您参考。希望有帮助!!!我觉得这可能正是我想要的。试图稍微解释一下代码。我的目标是:为iframe设置一个事件处理程序。重新加载iframe,暂停javascript的执行,直到onload完成,然后继续?是的,这对你来说是可行的!!!另外,如果它对你有帮助的话,别忘了接受它作为回答!!:)@一个常见的错误是试图暂停JavaScript的执行,这是不可能的。你必须做的是把你的代码分成两部分;在延迟之前和延迟之后。将延迟后应该运行的代码放入设置为事件处理程序的函数中。如果我有足够的模块化,它应该不会太糟糕。我去看看。等待一些服务器启动,然后我将测试这个答案,然后给它竖起社会大拇指!:)