Реализация «пассивных слушателей событий» в расширении Chrome - PullRequest
0 голосов
/ 17 мая 2018

Я использую расширение 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://i.imgur.com/SDmGdVo.png

Также вот ссылка на весь аддон, который я модифицировал для личного использования, если вам нужно посмотреть код целиком: https://dl.dropboxusercontent.com/s/olon2g04mifo7gh/ZommIncrementsFork.zip

Что я пропустил, чтобы сделать слушателя пассивным и перестать выкидывать эту ошибку в консоль?

Привет!

1 Ответ

0 голосов
/ 17 мая 2018

Из документации

вам необходимо установить passive: true в обработчике событий, например:

window.addEventListener("mousewheel", function( event ) {
  // all of your function code
  // ...
}, { passive: true})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...