嗨,是否可以检测到页面正在通过 ctrl+shift+t 命令呈现?
hi, it is possible to detect on react that the page is rendering by a ctrl+shift+t command?
是否可以检测到页面正在通过 ctrl+shift+t 命令呈现?例如,我需要检测这种情况:
- 用户关闭浏览器选项卡
- 然后用户按 ctrl+shift+t 重新打开选项卡
- 然后我确定该选项卡是通过 ctrl+shift+t 命令打开的
这可能吗?怎么样?
更新:
我的页面上有这段代码:
useEffect(() => {
function handleResize() {
//some stuff
}
window.addEventListener('popstate', handleResize);
return function cleanupListener() {
console.log('backing')
window.removeEventListener('popstate', handleResize);
};
}, []);
当我点击进入这个页面时,我做了一个 history.push(/chat)。
然后,如果我单击后退按钮,则会显示 console.log 'backing'。
但是如果我关闭选项卡并重新打开,如果我单击后退按钮,console.log 不会显示:/
提前致谢
这是不可能的,因为当它从 dom.
中失去焦点时,您无法获取用户按键事件
但是您可以阻止或警告用户关闭标签页,
window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';
});
是否可以检测到页面正在通过 ctrl+shift+t 命令呈现?例如,我需要检测这种情况:
- 用户关闭浏览器选项卡
- 然后用户按 ctrl+shift+t 重新打开选项卡
- 然后我确定该选项卡是通过 ctrl+shift+t 命令打开的
这可能吗?怎么样?
更新: 我的页面上有这段代码:
useEffect(() => {
function handleResize() {
//some stuff
}
window.addEventListener('popstate', handleResize);
return function cleanupListener() {
console.log('backing')
window.removeEventListener('popstate', handleResize);
};
}, []);
当我点击进入这个页面时,我做了一个 history.push(/chat)。 然后,如果我单击后退按钮,则会显示 console.log 'backing'。 但是如果我关闭选项卡并重新打开,如果我单击后退按钮,console.log 不会显示:/
提前致谢
这是不可能的,因为当它从 dom.
中失去焦点时,您无法获取用户按键事件但是您可以阻止或警告用户关闭标签页,
window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';
});