簡體   English   中英

阻止默認操作但不停止事件傳播

[英]Prevent default action but don't stop the event propagating

我需要在 IE6+ 上運行的代碼,只是想檢查一下我是否錯過了對任何瀏覽器的支持。

這段代碼有效,我已經在 IE7、Firefox 10、Google Chrome 17 上進行了測試,但我沒有其他瀏覽器要測試。 我想知道是否有其他人這樣做並知道代碼是什么,我是否錯過了使用我的代碼對任何瀏覽器的支持:

    if (!e) e = window.event;       
    e.returnValue = false;      
    if (e.preventDefault) e.preventDefault();           
    return false;

preventDefault()是 w3c DOM Level 2 標准,所以它應該被所有現代瀏覽器實現。

然而,IE6 不是現代瀏覽器,它沒有實現 DOM Level 2 或preventDefault() 另一種 IE6 使用將event.returnValue設置為false ,就像您所做的那樣。 請注意,這不會影響事件冒泡(在 IE6 中,這將通過將event.cancelBubble設置為 true 來實現)。 所以你的代碼應該可以在 IE6 以及所有現代瀏覽器中工作,以防止默認操作而不停止傳播。

但是,如果您不必:

if (e.preventDefault) {
    e.preventDefault();
} else {
    e.returnValue = false;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM