本文详解如何在
html
表单提交
前通过
java
script 安全、可靠地执行页面跳转,重点纠正 `location.replace()` 等常见误用,并提供 `
win
dow.location.href` 与 `window.location.replace()` 的适用场景对比及调试技巧。
在 Web 开发中,
前端
重定向是登录、表单验证后跳转等场景的常见需求。但如示例所示,许多开发者会因大小写、对象访问方式或上下文冲突导致重定向失败。核心问题在于:
Location 不是一个独立全局对象,而必须通过 window.location(或简写 location)访问
。直接调用 Location.replace(...) 会抛出 ReferenceError: Location is not defined,即使控制台未显式报错,也可能因脚本中断而静默失效。
✅ 正确写法如下(推荐显式使用 window.location 提高可读性与兼容性):
⚠️ 注意事项:
Comet AI 浏览器
下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。
下载
避免大小写错误
:Location(首字母大写)是无效的;必须是 location(全小写)或 window.location。
不要在
function redirect() {
if (ValidateCaptcha()) {
// ✅ 方式一:替换当前历史记录(用户无法通过“返回”回到原页)
window.location.replace("/redirect.html");
// ✅ 方式二:添加新历史记录(用户可点击浏览器“返回”按钮回到当前页)
// window.location.href = "/redirect.html";
} else {
alert("Please complete the captcha to log in.");
}
}