如何实现JavaScript的window.confirm()方法,实现点击“是”,跳转到“login.jsp”,点击“否”,跳转到“index.jsp”?
在用户点击确定或取消后,会返回一个布尔值作为结果。‘
正确代码演示:
if (window.confirm("你想跳转到登录页面吗?")) {
window.location.href = "login.jsp";
} else {
window.location.href = "index.jsp";
}
有伙伴问:为什么 <c:redirect url="login.jsp"></c:redirect> 不可以?
因为这就涉及到Jsp页面加载顺序:
1、<%......%>优先加载 2、jsp页面中的html元素(图片/视频等置后加载)与js代码按照从上到下依次加载 3、window.ready或者$(document).ready(function(){...}),简写$(funciton(){...}),是文档结构加载完之后加载执行,但不包括图片等非文字媒体文件 4、加载图片等页面元素 5、window.onload是页面上包括图片等元素都加载完之后进行加载执行 |
简说: java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码。
所以加载执行顺序是是 java>jsp>js。
所以写了这个c标签的重定向就不会出现弹框而会直接跳转
错误代码演示:
if (window.confirm('注册成功,是否去登录')) {
<c:redirect url="login.jsp"></c:redirect>
} else {
<c:redirect url="register.jsp"></c:redirect>
}
请注意,在使用 window.confirm() 方法时需要注意以下几点:
- 该方法只能在浏览器环境中使用,在 Node.js 环境中无效。
- 该方法是同步执行的,会阻塞其他 JavaScript 代码的执行,直到用户完成确认操作。
- 由于浏览器实现的差异,window.confirm() 方法的外观和行为可能会有所不同,因此建议在不同浏览器中测试。