nextjs 用户点击浏览器前进或者后退按钮或者离开、刷新页面弹出提示用户确定才能继续否则取消
要实现在 Next.js 中当用户点击浏览器前进或后退按钮、离开或刷新页面时弹出提示并需要用户确认才能继续,可以使用 JavaScript 的 beforeunload 事件。
首先,在你的 Next.js 页面组件中,可以在 useEffect 钩子中添加以下代码:
useEffect(() => {
const handleBeforeUnload = (event) => {
event.preventDefault();
event.returnValue = '';
};
window.addEventListener('beforeunload', handleBeforeUnload);
return () => {
window.removeEventListener('beforeunload', handleBeforeUnload);
};
}, []);
上述代码创建了一个名为 handleBeforeUnload 的事件处理函数,并将其添加到 beforeunload 事件的监听器中。当用户点击浏览器的前进、后退按钮,或者尝试离开或刷新页面时,handleBeforeUnload 函数将被触发。
在 handleBeforeUnload 函数中,我们使用 event.preventDefault() 阻止默认的提示框弹出,并通过设置 event.returnValue = '' 来触发浏览器的默认提示框。用户只有在确认提示框中的内容后才能继续操作。
最后,为了避免内存泄漏,我们在组件被卸载时需要将事件监听器移除。
这样,当用户点击浏览器的前进、后退按钮,或者尝试离开或刷新页面时,就会弹出一个提示框。用户需要确认提示框中的内容后才能继续操作
原文地址: https://www.cveoy.top/t/topic/inNy 著作权归作者所有。请勿转载和采集!