Лично мне не понравилась новая функция статистики, которую запустил Твиттер, поэтому я создал скрипт на JavaScript для удаления этих значков и новой информации, которая появляется на моей временной шкале. Таким образом, я могу использовать Twitter по своему усмотрению.

Чтобы запустить скрипт, я выбрал все блоки статистики на странице Twitter, используя простую строку JavaScript:

let views = document.querySelectorAll('[aria-label*="Exibir estatísticas do Tweet"]');

Это извлекает массив всех div, у которых есть aria-label, указывающий статистику Twitter. После этого я использую цикл forEach для перебора массива и удаления элементов HTML из HTML. И теперь скрипт выглядит так:

let views = document.querySelectorAll('[aria-label*="Exibir estatísticas do Tweet"]');
views.forEach((view) => {
  view.parentElement.remove();
});

Этот код уже работает, но он не ловит все вновь загруженные твиты. Чтобы сделать это функциональным, давайте создадим новый экземпляр объекта Mutation Observer и установим его в переменную наблюдателя. Этот наблюдатель будет предназначен для отслеживания изменений в элементе body и его дочерних элементах. Наблюдатель будет настроен на вызов метода forEach всякий раз, когда в теле происходит мутация. Мы заставим его ловить все новые твиты, когда они загружаются.

Метод forEach выполняет итерацию по добавленным узлам каждой мутации и использует метод querySelectorAll для выбора любых элементов с атрибутом aria-label, содержащим текст «Exibir estatísticas do Tweet». Затем эти элементы удаляются путем вызова метода parentElement.remove(). В моей первой попытке сделать это я использовал только метод remove(), но CSS не подходил, потому что над блоком div, на который я ориентировался, был родительский элемент HTML. Итак, я использовал родительский элемент div, и он работал хорошо.

Наконец, я настраиваю наблюдателя для наблюдения за элементом тела, вызывая методObserve() для наблюдателя и передавая переменную тела и объект параметров в качестве аргументов. Объект параметров указывает, что наблюдатель должен наблюдать за изменениями в дочернем списке и поддереве.

Окончательный код выглядит так:

let body = document.body;

let views = document.querySelectorAll('[aria-label*="Exibir estatísticas do Tweet"]');
views.forEach((view) => {
  view.parentElement.remove();
});

let observer = new MutationObserver((mutations) => {
  mutations.forEach((mutation) => {
    let addedNodes = mutation.addedNodes;

    for (let i = 0; i < addedNodes.length; i++) {
      let node = addedNodes[i];
      let views = node.querySelectorAll('[aria-label*="Exibir estatísticas do Tweet"]');
      views.forEach((view) => view.parentElement.remove());
    }
  });
});

observer.observe(body, { childList: true, subtree: true });

Чтобы этот код работал в вашем регионе, вы должны изменить «aria-label» на ярлык, который отображается в вашем регионе. Вы можете просмотреть это в инспекторе вашего браузера.

Спасибо за чтение этого! Надеюсь, вы нашли это крутым! Если у вас есть какие-либо вопросы или отзывы, пожалуйста, не стесняйтесь обращаться к нам!

Следите за мной в Twitter или LinkedIn!