我使用一个Chrome扩展来修改Zoom增量,并在控制台中抛出这个错误:
Added non-passive event listener to a scroll-blocking 'mousewheel' event. Consider marking event handler as 'passive' to make the page more responsive.我试图修改扩展以添加标记,使事件处理程序变得被动,但它似乎不起作用,我不知道为什么?
下面是代码:
window.addEventListener("mousewheel", function( event ) {
if(enabled){
//console.log("Scrolling Before: ",scrolling);
if(!zooming){
if(( event.wheelDeltaY > 0 || event.wheelDeltaY < 0 ) && !event.ctrlKey && !scrolling)
scrolling = true;
}
//console.log("Scrolling: ",scrolling);
if(!zooming && !scrolling){
if(event.ctrlKey){
zooming = true;
tempZoomLevel = zoomLevel;
if( event.wheelDeltaY > 0 ) {
tempZoomLevel += zoomIncrement;
}
if( event.wheelDeltaY < 0 ) {
tempZoomLevel -= zoomIncrement;
}
if((Date.now() - lastZoomEvent) > zoomDelay){
lastZoomEvent = Date.now();
zooming = false;
zoomLevel = tempZoomLevel;
chrome.runtime.sendMessage({zoom: zoomLevel, lastZoom:lastZoomEvent, from:"content"}, function(response) {
});
}
else
zooming = false;
}
event.preventDefault();
event.stopPropagation();
}
/*else{
}*/
return false;
}
}, {capture: true} ); /* Passive event listeners Mikhoul */最后,您将看到我添加了“标志”{capture: true},但控制台中总是有此错误:

此外,如果您需要查看完整的代码:https://dl.dropboxusercontent.com/s/olon2g04mifo7gh/ZommIncrementsFork.zip,这里还有一个链接,指向我为个人使用而修改的整个注释:
我错过了什么使侦听器被动并停止在控制台中抛出此错误?
致以问候!
发布于 2018-05-17 17:53:33
来自文档
您需要在事件处理程序中设置passive: true,如下所示:
window.addEventListener("mousewheel", function( event ) {
// all of your function code
// ...
}, { passive: true})https://stackoverflow.com/questions/50397545
复制相似问题