Как сделать так, чтобы значок сайта оставался статичным?

Как сделать так, чтобы значок сайта оставался статичным?

Я хотел бы запретить изменение значка сайта в Firefox на моем Mac.

Думаю, я смогу сделать это с Grease Monkey.

Моя цель — не допустить, чтобы такие приложения, как Slack, меняли значок Favicon, чтобы указать на наличие уведомления.

Могу ли я указать веб-сайтам, что они должны использовать тот же самый значок, который они загрузили, не меняя его?

решение1

Вы можете написать скрипт Greasemonkey, использующий Javascriptнаблюдатель мутацийнаблюдать за изменением значка сайта и немедленно возвращать его к исходному состоянию, прежде чем вы что-либо заметите.

Вот как это сделать:

  1. Если вы еще этого не сделали, установитеГрязная обезьянаРасширение Firefox (этот вопрос касается Firefox, но вы также можете сделать это в Chrome и Edge, используя расширение Tampermonkey):ссылка для Chrome,ссылка для Edge)

  2. Нажмите на меню Greasemonkey в верхней панели, затем выберите «Новый пользовательский скрипт...» (если вы используете Tampermonkey, кнопка называется «Создать новый скрипт...»).

  3. Когда вы нажмете на эту кнопку, она должна открыть новую вкладку с большой текстовой областью, где вы можете написать код Javascript. Текстовая область, вероятно, уже будет содержать какой-то код. Просто удалите этот код и замените его этим:

    // ==UserScript==
    // @name         Do not change the favicon
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  Prevents sites from changing the favicon
    // @author       You
    // @match        http://*/*
    // @match        https://*/*
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        //Initialize some variables
        var favicon = document.querySelector("link[rel='shortcut icon']");
        const initialIcon = favicon.href;
    
        //Define the function to run when the favicon changes
        var observer = new MutationObserver(function(){
            if(favicon.href != initialIcon){
                favicon.href = initialIcon;    //Change the favicon back directly when it changes before you notice anything
            }
        });
    
        //Run the function above whenever the favicon changes
        observer.observe(favicon, {attributes: true});
    })();
    

    Строки сверху, начинающиеся с //«definite properties of the script», @nameопределяют имя скрипта и @matchопределяют, на каких сайтах он должен быть запущен ( http://*/*то https://*/*есть на всех сайтах).

    Часть внизу — это фактический скрипт, который не дает фавикону меняться. Как я объяснил в начале своего ответа, он определяет, когда фавикон меняется, и быстро меняет его обратно, прежде чем вы что-либо заметите.

  4. Нажмите Ctrl+, Sчтобы сохранить скрипт, и на этом все должно быть готово.

решение2

Вам придется редактировать куки, привязанные к сайту/веб-приложению, и изменить значение, которое разрешает уведомление. Существуют расширения, такие как CookieCutter, которые позволяют редактировать куки, хотя это расширение для Safari.

Связанный контент