javascript - 为什么 HourGlass 无法在 Google Chrome 中使用同步 AJAX 请求?

标签 javascript ajax google-chrome

我正在执行一个函数,首先我将光标设置为等待状态(沙漏),然后发送同步 AJAX 请求。收到响应后,我将光标设置为默认状态。

实际代码是这样的..

//测试 smtp 设置 函数测试设置() { var Buttonparams= new Object();

buttonparams.IsCommandButton = true;
buttonparams.ButtonId = "testsettings";
buttonparams.ButtonText = "Sending Test Mail...";
buttonparams.ButtonOrigText = "Test Settings";

if(buttonparams.IsCommandButton == true)
    HandleButtonStatus(true, buttonparams);

var request = function()
{
    var ret = SendForm(buttonparams);

    alert(ret);

}
window.setTimeout(request, 0);  

}

函数SendForm(pButtonParams) { var http; var 表单数据;

http = yXMLHttpRequest();

http.open("POST", "./", false);
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
http.setRequestHeader("Req-Type", "ajax");
formdata = xEncodePair("_object", "PrefMgr")+ "&";
formdata += xEncodePair("_action", "SmtpTest")+ "&";
formdata += GetEncodedFormData();   

http.send(formdata);

if(http.status == 200)
{   
    if(pButtonParams.IsCommandButton == true)
        HandleButtonStatus(false, pButtonParams);

    return (http.responseText);
}   
else
{

    return ("Error " + http.status + ": " + http.statusText);   
}   

}

函数 HandleButtonStatus(pIsButtonStatusChange, pButtonParams) { var 按钮 = yById(pButtonParams.ButtonId);

if(pIsButtonStatusChange)
{
        document.body.style.cursor = "wait";
    button.value = pButtonParams.ButtonText;
    button.disabled = true;

}
else
{
    document.body.style.cursor = "default";
    button.disabled = false;
    button.value = pButtonParams.ButtonOrigText;
}

}

最佳答案

尝试分配:

var st = document.body.style;

然后在两个函数中引用st。这可能是 AJAX 回调函数中的范围问题。

编辑:使用回调函数恢复光标形状。不要忘记执行相同的操作,以防 AJAX 调用失败。

关于javascript - 为什么 HourGlass 无法在 Google Chrome 中使用同步 AJAX 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/924681/

相关文章:

JavaScript JSON 表匹配

google-chrome - Chrome 扩展程序访问 header 信息

javascript - 关闭 Chrome 应用程序时如何最小化到托盘?

javascript - 连续 AJAX 调用的 "async: false"替代方案

html - Chrome : border-radius on image with padding and background

javascript - 我正在尝试让一个 div 元素跟随我的鼠标(javascript),但它一直出现故障

javascript - 仅在参数类型检查时实例化 JavaScript 构造函数

javascript - 停止将 props 传递给带有样式组件的子组件

javascript - 最佳实践 : Spring Boot Backend & jQuery Frontend

javascript - 加载页面 Ajax,然后将其滑入页面或插件