Mac 上の Firefox でファビコンが変更されないようにしたいです。
グリースモンキーならできるかもしれないと思っています。
私の目標は、Slack などが通知があることを示すためにファビコンを変更するのを防ぐことです。
ウェブサイトに対して、読み込まれたファビコンを変更せずにそのまま使用するように指示できますか?
答え1
Javascriptを使用するGreasemonkeyスクリプトを書くことができます突然変異観察者ファビコンが変更されたら観察し、何かに気付く前にすぐに元に戻します。
やり方は次のとおりです:
まだインストールしていない場合は、グリースモンキーFirefox 拡張機能 (この質問は Firefox に関するものですが、Tampermonkey 拡張機能を使用すると Chrome や Edge でも同じことができます。)Chrome へのリンク、Edgeへのリンク)
上部のバーにある 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
サイト/Web アプリに関連付けられた Cookie を編集し、通知を許可する値を変更する必要があります。CookieCutter などの拡張機能を使用すると Cookie を編集できますが、これは Safari 用です。