繁体   English   中英

如何在函数中使用事件监听器?

[英]How to use eventlisteners in functions?

在卸载页面之前,我需要询问用户的确认。 如果我在 JS 中这样做,它会起作用:

window.onbeforeunload = function () { //close confirm
    return '';
}

但是当我将它放入 function 以使其更灵活时,我似乎没有注册:

function sth()
{
    window.addEventListener('beforeunload', closeConfirm, false);
}

function closeConfirm()
{
    return '';
}

有人可以告诉我区别吗? 在事件在普通 JS 的函数之外注册后,在 function 中删除也不起作用。 sth() 通过按下按钮来调用。 我需要在登录时启用此事件侦听器,并在注销或超时时删除,但我无法使其与 function 调用一起工作,但只是在页面加载时。

---REFRESH--- 示例: https://jsfiddle.net/6mvuet1h/1/

如果您注释掉 2-4 行,这是行不通的。

所以我正在编辑我的答案,因为我之前误解了你的问题。

beforeundload mdn 页面上,我们可以看到一些浏览器(包括 chrome)需要设置event.returnValue 其他一些浏览器需要调用event.preventDefault() 所以你的closeConfirm function 应该是这样的:

function closeConfirm(event)
{
    event.preventDefault();
    event.returnValue = '';
    return '';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM