是否可以在react上检测到页面是通过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);
};
}, []);
当我点击进入这个页面时,我会创建一个历史记录。推送(/聊天(。然后,如果我点击后退按钮,就会显示console.log"backing"。但是,如果我关闭选项卡并重新打开,如果我单击后退按钮,控制台日志不会显示:/
提前感谢
这是不可能的,因为当用户按键从dom偏离焦点时,您无法获取用户按键事件。
但你可以阻止或警告用户关闭标签,
window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';
});