You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

返回上一页时光标卡在‘wait’状态的解决方法咨询

解决返回上一页时光标无法恢复为default的问题

问题根源

浏览器的**后退缓存(Back-Forward Cache,简称bfcache)**会保留页面的状态(包括DOM样式、JS运行状态),当用户通过后退回到登录页时,页面不会重新触发window.onload事件,你原本依赖onload重置光标的逻辑就不会执行,导致光标停留在wait状态。

修复方案

使用pageshow事件替代window.onload,这个事件会在页面首次加载、从bfcache恢复显示时均触发,能可靠重置光标样式。同时修正你现有JS代码中的错误。

修正后的JS代码

function waitPointer() {
    document.body.style.cursor = 'wait';
    return true;
}

// 页面显示时(含从缓存恢复)强制重置光标为默认样式
window.addEventListener('pageshow', function() {
    document.body.style.cursor = 'default';
});

额外兜底优化

如果表单提交过程中出现异常(比如请求超时、验证失败),可以给表单添加兜底逻辑,避免光标一直处于wait状态:

<!-- 给登录按钮所在的表单添加onsubmit事件 -->
<form onsubmit="setTimeout(() => document.body.style.cursor='default', 3000);">
    <div class="introLogin" onclick="waitPointer();">
        <input class="introLoginInput" type="submit" name="submit" value="Login">
    </div>
</form>

设置3秒后自动重置光标,防止因提交流程卡住导致光标状态异常。

原代码问题说明

你写的defaultPointer函数存在错误:第一行错误将光标设置为wait,且window.onload的绑定逻辑冗余,建议直接移除这个函数,改用上面的pageshow事件监听方案。

内容的提问来源于stack exchange,提问作者HawkHightech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:44:52