gpt4 book ai didi

javascript - settimeout 没有被调用?

转载 作者:行者123 更新时间:2023-12-03 10:15:36 24 4
gpt4 key购买 nike

我有一个 javascript,它调用服务器并获取 JSON 数据,其中包含一些用于启用/禁用重定向到另一个链接的配置。我需要将重定向延迟几秒钟,但似乎在我的方法中没有调用 setTimeout() 。即使我将redirect()更改为匿名函数并将其传递到setTimeout中,它仍然不会被调用。

<script>
var xhr = new XMLHttpRequest();
var migrationConfig;
xhr.onreadystatechange = function() {
function redirect(){
alert("in redirect");
window.top.location=migrationConfig.REDIRECT_LINK;
}
if (xhr.readyState == 4 && xhr.status==200) {
var data = xhr.responseText;
migrationConfig = JSON.parse(data);
if(migrationConfig.SHOW_REDIRECT_MESSAGE == 'Y'){
if (window.confirm(migrationConfig.REDIRECT_MESSAGE)){
document.body.innerHTML = '';
document.write("<h1><font color='red'>You will now be redirected to the new URL at:</font></h1>");
document.write("<h1><font color='red'>"+ migrationConfig.REDIRECT_LINK +"</font></h1>");
setTimeout(redirect,3000);
}

}

}
}
xhr.open('GET', '/MyApp/migration-config?APP_NAME=MyApp', true);
xhr.send(null);

最佳答案

//设置全局对象以便在 settimeout 函数中使用它

var redirect;

然后在 xhr.onreadystatechange = function() {

redirect = function(){
alert("in redirect");
window.top.location=migrationConfig.REDIRECT_LINK;
}

setTimeout('redirect()',3000);

关于javascript - settimeout 没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29890699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com