Greasy Fork is available in English.
Add default favicon for any sites that don't have a favicon
// ==UserScript== // @name Replace Missing Favicon // @namespace iFantz7E.ReplaceMissingFavicon // @description Add default favicon for any sites that don't have a favicon // @version 0.14 // @icon https://i.imgur.com/AI5VsOE.png // @include * // @run-at document-start // @grant GM_xmlhttpRequest // @connect * // @copyright 2017, 7-elephant // ==/UserScript== // Connect: connect to any icons in link tags (function () { "use strict"; // jshint multistr:true function attachOnReady(callback) { document.addEventListener("DOMContentLoaded", function (e) { callback(); }); } function getFavicon() { var rgxIcon = /icon/i; var elesLink = document.querySelectorAll("link"); for (var i = 0; i < elesLink.length; i++) { var attrRel = elesLink[i].getAttribute("rel"); if(rgxIcon.test(attrRel)) { return elesLink[i].getAttribute("href") || ""; } } return ""; } function addFavicon() { // Default icon from https://s2.googleusercontent.com/s2/favicons?domain=sample var iconDefault = "data:image/png;base64,\ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABs0lEQVR4AWL4//8/RRjO8Iucx+noO0O2qmlbUEnt5r3Juas+\ hsQD6KaG7dqCKPgx72Pe9GIY27btZBrbtm3btm0nO12D7tVXe63jqtqqU/iDw9K58sEruKkngH0DBljOE+T/qqx/Ln718RZO\ Fasxyd3XRbWzlFMxRbgOTx9QWFzHtZlD+aqLb108sOAIAai6+NbHW7lUHaZkDFJt+wp1DG7R1d0b7Z88EOL08oXwjokcOvvU\ xYMjBFCamWP5KjKBjKOpZx2HEPj+Ieod26U+dpg6lK2CIwTQH0oECGT5eHj+IgSueJ5fPaPg6PZrz6DGHiGAISE7QPrIvIKV\ rSvCe2DNHSsehIDatOBna/+OEOgTQE6WAy1AAFiVcf6PhgCGxEvlA9QngLlAQCkLsNWhBZIDz/zg4ggmjHfYxoPGEMPZECW+\ zjwmFk6Ih194y7VHYGOPvEYlTAJlQwI4MEhgTOzZGiNalRpGgsOYFw5lEfTKybgfBtmuTNdI3MrOTAQmYf/DNcAwDeycVjRO\ gZFt18gMso6V5Z8JpcEk2LPKpOAH0/4bKMCAYnuqm7cHOGHJTBRhAEJN9d/t5zCxAAAAAElFTkSuQmCC"; var ele = document.createElement("link"); ele.setAttribute("rel", "icon"); ele.setAttribute("type", "image/png"); ele.setAttribute("href", iconDefault); document.head.appendChild(ele); } function main() { if (window !== window.parent) { //console.log("iframe"); return; } var onloadFavIcon = function(response, b) { if (response.status !== 200) { console.log("Favicon: Not found - " + (response.finalUrl || "Request error")); addFavicon(); } else { //console.log("Favicon: Found 200 - " + response.finalUrl); } } var favIcon = getFavicon(); if (!favIcon) { GM_xmlhttpRequest( { url: "/favicon.ico", method: "HEAD", onload: onloadFavIcon, onerror: onloadFavIcon }); } else { //console.log(favIcon); /* GM_xmlhttpRequest( { url: favIcon, method: "HEAD", onload: onloadFavIcon, onerror: onloadFavIcon }); */ } } attachOnReady(main); })(); // End