我想防止 Mac 上的 Firefox 上的圖示發生變化。
我想我也許可以用油猴來做到這一點。
我的目標是防止 Slack 之類的東西更改 Favicon 以指示有通知。
我可以告訴網站他們必須使用加載時相同的圖標而不進行更改嗎?
答案1
您可以編寫一個使用 Javascript 的 Greasemonkey 腳本突變觀察者觀察網站圖示何時發生變化,然後在您注意到任何情況之前立即將其變更回來。
以下是如何執行此操作:
如果您還沒有這樣做,請安裝油猴Firefox 擴充功能(這個問題是關於 Firefox 的,但您也可以使用 Tampermonkey 擴充功能在 Chrome 和 Edge 上執行此操作:Chrome 的連結,邊緣的連結)
點擊頂部欄中的 Greasemonkey 選單,然後選擇“新使用者腳本...”(如果您使用的是 Tampermonkey,該按鈕稱為“建立新腳本...”)
當您按一下該按鈕時,它應該會開啟一個新選項卡,其中包含一個大文字區域,您可以在其中編寫 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://*/*
所有網站)。底部的部分是實際的腳本,可防止圖標更改。正如我在答案開頭所解釋的那樣,它的作用是檢測圖標何時發生變化,並在您注意到任何事情之前快速將其更改回來。
按Ctrl+S儲存腳本,然後就完成了。
答案2
您必須編輯與網站/網路應用程式關聯的 cookie,並變更允許通知的值。有一些擴充功能(例如 CookieCutter)可讓您編輯 cookie,儘管該擴充功能適用於 Safari。