首页 > 解决方案 > React, Javascript - 捕获浏览器/标签关闭事件

问题描述

我正在使用beforeunload事件处理程序来捕获浏览器关闭事件。我收到一个显示“ leave”和“ cancel”选项的弹出窗口。有没有办法捕捉“离开”按钮点击事件?我想触发一个功能是用户点击弹出窗口上的“离开”。

标签: javascriptreactjs

解决方案


const useLeave => {
    const [leaveState, setLeaveState] = useState(false);
    const unloadCallback = useCallback((event) => {
        event.preventDefault();
        let res = window.confirm('Leave? Really?’)
        setLeaveState(res)
    }, [leaveState]);
    useEffect(() => {
        window.addEventListener('beforeunload', unloadCallback);
        return () => {
            window.removeEventListener('beforeunload', unloadCallback)
        };
    }, []);

    return leaveState;
};

推荐阅读