簡體   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