是否只有在关闭选项卡/浏览器时才能获得警报/确认?每次我刷新页面/收到警报时,都会出现此确认信息,我不希望它那样做。我创建了一个布尔状态变量——如果它是真的——确认应该弹出,假的——不应该:render(){ window.addEventListener("beforeunload", (ev) => { if(this.state.hasChanged===true) { ev.preventDefault(); return ev.returnValue = 'Are you sure you want to close?'; }}我也试过:render(){ window.addEventListener("beforeunload", (ev) => { console.log(performance) if((performance.navigation.type!==1)&&(this.state.hasChanged===true)) { ev.preventDefault(); return ev.returnValue = 'Are you sure you want to close?'; } });}
3 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
@Davo 就像他说的那样,操纵 localStorage 可能是最好的选择。因此,如果用户来到您的页面,请添加您想要的任何 localStorage 项目。您甚至可以以时间格式执行此操作,以便您可以让它过期。您还可以在您呈现的每个页面上验证令牌,以确保用户拥有令牌。因此,如果用户具有您创建的相同令牌,那么您可以从那里操纵您的状态。希望这可以帮助!
jeck猫
TA贡献1909条经验 获得超7个赞
我想我理解这个问题。如果您试图在用户离开页面之前显示一条消息,您可以使用在名为 onbeforeunload 的窗口对象中找到的事件。您可以在 MDN 上找到该文档(链接如下)。我希望这会有所帮助。
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
这可以用来制作那些“你确定要离开”的消息。
因此浏览器不会意外拒绝您可以使用 Toast 或 Lightbox 的警报。
-祝你好运!
添加回答
举报
0/150
提交
取消