Javascript 如何抓住;无法在被动事件侦听器内防止默认值;

Javascript 如何抓住;无法在被动事件侦听器内防止默认值;,javascript,Javascript,JavaScript中的任何错误都不应该被捕获吗?为什么用trycatch块不捕获标题中提到的错误 document.addEventListener('click', function() { event.preventDefault() console.log('clicked!') }, {passive: true}) 为了您的方便。MDN说:“一个布尔值,指示侦听器永远不会调用preventDefault()。如果它调用了preventDefault(),用户代理应该

JavaScript中的任何错误都不应该被捕获吗?为什么用
try
catch
块不捕获标题中提到的错误

document.addEventListener('click', function() {
    event.preventDefault()
    console.log('clicked!')
}, {passive: true})

为了您的方便。

MDN说:“一个布尔值,指示侦听器永远不会调用preventDefault()。如果它调用了preventDefault(),用户代理应该忽略它并生成一个控制台警告。”所以我猜这不是一个正常错误。如果当时点击了
将不会被记录到控制台。@FelixKling这是否意味着Chrome用户代理不符合规范?(它给出了一个大大的红色错误)不,它似乎做了它应该做的事情。它在控制台中显示警告,但不会抛出错误。或者,您的意思是警告看起来更像一个错误?警告的视觉外观类似于
控制台.error
,而不是
控制台.warn
,但它并不是真正的错误,之后一切都正常运行。无论如何,您都不需要捕捉错误。您可以在代码运行之前修复此问题。如果将事件侦听器设置为被动,请不要在侦听器中使用
preventDefault()
。MDN说:“一个布尔值指示侦听器永远不会调用preventDefault()。如果它调用,则用户代理应忽略它并生成控制台警告。”因此我猜这不是一个正常错误。如果当时点击了
将不会被记录到控制台。@FelixKling这是否意味着Chrome用户代理不符合规范?(它给出了一个大大的红色错误)不,它似乎做了它应该做的事情。它在控制台中显示警告,但不会抛出错误。或者,您的意思是警告看起来更像一个错误?警告的视觉外观类似于
控制台.error
,而不是
控制台.warn
,但它并不是真正的错误,之后一切都正常运行。无论如何,您都不需要捕捉错误。您可以在代码运行之前修复此问题。如果将事件侦听器设置为被动,则不要在侦听器中使用
preventDefault()