Можно ли программно отслеживать все события на странице в браузере?

Короткий ответ: никогда!

48
задан Community 23 May 2017 в 01:47
поделиться

1 ответ

Немного поздно стороне, но я действительно создавал что-то, что могло бы быть полезно для других здесь.

https://codepen.io/phreaknation/pen/QmJjEa

Это - Класс ES6, который получает все события от элемента, который известен тому элементу. Эта демонстрация позволяет Вам изменять время элемента на странице, а также считывать события с активируемыми по щелчку ссылками на их страницу MDN, а также взаимодействовать с элементом и видеть, как события инициированы с метками времени.

я надеюсь, что это помогает

код Класса

class EventSystem {
  constructor(element) {
    this._ = {
      element: null
    }

    return this;
  }

  getAllEventTypes({blacklist = [], whitelist = []} = {}) {
    const events = [];
    for (let property in this._.element) {
      const match = property.match(/^on(.*)/);
      if (match) {
        if ((whitelist.length > 0 ? whitelist.indexOf(match) !== -1 : true) &&
            (blacklist.length > 0 ? blacklist.indexOf(match) === -1 : true)) {
          events.push(match[1]);
        }          
      }
    }
    return events;
  }

  getElementType() {
    return this._.element.tagName.toLowerCase();
  }

  setElement(element) {
    this._.element = element;
    return this;
  }

  applyEvents(events, callback) {
    events.forEach((event) => {
      this._.element.addEventListener(event, (ev) => {
        if (typeof callback === 'function') {
          callback(event, ev);
        }
      })
    })
  }
}
0
ответ дан 7 November 2019 в 12:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: