事件:defaultPrevented 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用。

Event 接口的只读属性 defaultPrevented 返回一个布尔值,表示是否调用 Event.preventDefault() 取消了事件。

一个布尔值,其中 true 表示默认的 用户代理 操作已被阻止,而 false 表示未被阻止。

示例

此示例记录了尝试从两个 <a> 元素访问链接的操作。JavaScript 用于阻止第二个链接工作。

HTML

html
<p><a id="link1" href="#link1">Visit link 1</a></p>
<p><a id="link2" href="#link2">Try to visit link 2</a> (you can't)</p>
<p id="log"></p>

JavaScript

js
function stopLink(event) {
  event.preventDefault();
}

function logClick(event) {
  const log = document.getElementById("log");

  if (event.target.tagName === "A") {
    log.innerText = event.defaultPrevented
      ? `Sorry, but you cannot visit this link!\n${log.innerText}`
      : `Visiting link…\n${log.innerText}`;
  }
}

const a = document.getElementById("link2");
a.addEventListener("click", stopLink);
document.addEventListener("click", logClick);

结果

规范

规范
DOM
# ref-for-dom-event-defaultprevented①

浏览器兼容性