如何使圖示保持靜態?

如何使圖示保持靜態?

我想防止 Mac 上的 Firefox 上的圖示發生變化。

我想我也許可以用油猴來做到這一點。

我的目標是防止 Slack 之類的東西更改 Favicon 以指示有通知。

我可以告訴網站他們必須使用加載時相同的圖標而不進行更改嗎?

答案1

您可以編寫一個使用 Javascript 的 Greasemonkey 腳本突變觀察者觀察網站圖示何時發生變化,然後在您注意到任何情況之前立即將其變更回來。

以下是如何執行此操作:

  1. 如果您還沒有這樣做,請安裝油猴Firefox 擴充功能(這個問題是關於 Firefox 的,但您也可以使用 Tampermonkey 擴充功能在 Chrome 和 Edge 上執行此操作:Chrome 的連結,邊緣的連結

  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});
    })();
    

    頂部以//定義腳本屬性開頭的行。@name定義腳本的名稱,並@match定義腳本應在哪些網站上執行(http://*/*意味著https://*/*所有網站)。

    底部的部分是實際的腳本,可防止圖標更改。正如我在答案開頭所解釋的那樣,它的作用是檢測圖標何時發生變化,並在您注意到任何事情之前快速將其更改回來。

  4. Ctrl+S儲存腳本,然後就完成了。

答案2

您必須編輯與網站/網路應用程式關聯的 cookie,並變更允許通知的值。有一些擴充功能(例如 CookieCutter)可讓您編輯 cookie,儘管該擴充功能適用於 Safari。

相關內容