Убиваем уведомления

5 января 2024

Устали от уведомлений вашего браузера?

Ну тогда эта статья для вас

Вот вам пример программы:

!function(){var e={},t={};Promise.all([chrp.init_storage("local",!0),chrp.init_storage("sync",!0),chrp.tabs.query({active:!0,lastFocusedWindow:!0}),$.ready.promise()]).then(function(n){e=n[0],t=n[1];var l=n[2][0],o=l.url.replace(/^.*:\/\//,"").replace(/\/.*$/,""),d=void 0!=t.host_blockalert[o]?t.host_blockalert[o]:t.default_blockalert,a=e.alerts[l.id],r=e.confirms[l.id],c=e.prompts[l.id];if(!a&&!r&&!c)return void window.close();var s=document.createElement("div");s.innerHTML="The following alerts were blocked on this page:",s.className="descrip";var i=document.createElement("div");i.className="alertlist";var m=document.createElement("div");m.innerHTML="The following alerts were shown on this page:",m.className="descrip";var u=document.createElement("div");u.className="alertlist";var p=!1,g=!1,f=function(e,t){for(var n=t.length-1;n>=0&&n>=t.length-5;n--){var l=$("

").append(""+e+"#"+(n+1)+': "'+t[n].message.substr(0,80).replace(/\n/g,"
"));t[n].message.length>80?(l.append(""+t[n].message.substr(80)+'" '),l.append($("").text("more").on("click",function(t){"more"==document.getElementById("more"+e+t).innerText?(document.getElementById("fullmessage"+e+t).style.display="inline",document.getElementById("more"+e+t).innerText="less"):(document.getElementById("fullmessage"+e+t).style.display="none",document.getElementById("more"+e+t).innerText="more")}.bind(null,n)))):l.append('"'),t[n].blocked?(i.appendChild(l[0]),p=!0):(u.appendChild(l[0]),g=!0)}};a&&f("alert",a),r&&f("confirm",r),c&&f("prompt",c),g&&(document.body.insertBefore(u,document.body.firstChild),document.body.insertBefore(m,document.body.firstChild)),p&&(document.body.insertBefore(i,document.body.firstChild),document.body.insertBefore(s,document.body.firstChild)),document.getElementById("allow-text").innerText=(d?"Always allow alerts":"Continue allowing alerts")+(d||t.default_blockalert?" from "+o:""),document.getElementById("block-text").innerText=(d?"Continue blocking alerts":"Always block alerts")+(d&&t.default_blockalert?"":" from "+o),document.getElementById((d?"block":"allow")+"-radio").checked=!0,document.getElementById((d?"block":"allow")+"-radio").focus(),document.getElementById("allow-radio").addEventListener("change",function(e){h(o,!this.checked)},!0),document.getElementById("block-radio").addEventListener("change",function(e){h(o,this.checked)},!0),document.getElementById("close").addEventListener("click",function(){window.close()},!0),document.getElementById("manage").addEventListener("click",function(){chrp.tabs.create({url:"options.html",selected:!0}),window.close()},!0);var h=function(e,n){t.host_blockalert[e]=n,chrp.sync({host_blockalert:t.host_blockalert})}})}();

  1. Инициализация хранилища: Скрипт инициализирует локальное и синхронизированное хранилище с помощью функции chrp.init_storage.
  2. Запрос активной вкладки: Скрипт выполняет запрос к браузеру, чтобы получить информацию о текущей активной вкладке с помощью функции chrp.tabs.query.
  3. Создание элементов HTML: Скрипт создает различные элементы HTML, такие как div, span, a, и заполняет их содержимым и классами.
  4. Блокировка и отображение алертов: Скрипт проверяет, были ли заблокированы алерты на текущей странице, и если да, то добавляет их в соответствующий список алертов.
  5. Управление разрешениями: Скрипт позволяет пользователю выбрать, разрешать или блокировать алерты на данной странице, и сохраняет выбор в хранилище.
  6. Обработка событий: Скрипт добавляет обработчики событий для кнопок и элементов интерфейса, таких как изменение радио-кнопок, клик на кнопку "Закрыть" и "Управление".
  7. Закрытие окна: При нажатии на кнопку "Закрыть", скрипт закрывает текущее окно браузера.
  8. Переход на страницу настроек: При нажатии на кнопку "Управление", скрипт создает новую вкладку браузера и открывает страницу настроек.

Для удобства плагин: ofjjanaennfbgpccfpbghnmblpdblbef

Теги: JS, Alert, Control