能否在Chrome中伪造用户交互以触发beforeunload事件?
关于beforeunload事件与用户交互的问题
首先明确:现代浏览器出于安全和防滥用的考虑,不会认可脚本模拟的操作作为有效用户交互来触发beforeunload事件。
- 你尝试的jQuery模拟点击、输入框聚焦之所以无效,是因为浏览器对“用户交互”的判定只认真实的用户主动操作(比如鼠标实际点击、键盘按键输入、手动滚动页面等),程序通过代码触发的操作会被浏览器直接排除在有效交互之外。
- 没有可靠的方法能伪造符合浏览器要求的用户交互来触发beforeunload。浏览器的这个限制是为了避免恶意网站通过脚本强制弹出离开提示,干扰用户正常浏览。
- 只有当用户在页面上产生过真实的交互行为后,beforeunload事件才会被允许触发。如果页面自加载后没有任何真实用户操作,无论用什么脚本手段都无法绕过这个限制。
内容的提问来源于stack exchange,提问作者cbxsky
相关产品推荐
相关产品推荐

