Greasy Fork is available in English.

HN Favicons

Favicons for Hacker News


Installer ce script?
// ==UserScript==// @name         HN Favicons// @namespace    https://yfu.tw// @version      0.3// @license MIT// @author      yufu// @description  Favicons for Hacker News// @match        https://*.ycombinator.com/*// @grant        GM.addElement// @icon         https://icons.duckduckgo.com/ip3/news.ycombinator.com.ico// ==/UserScript==// original scripts: https://gfork.dahi.icu/zh-TW/scripts/443687-hn-favicons// patched by yufu// working with Autopage(function() {'use strict';let size = 12;function doOne(link) {if (link.hasAttribute('has-icon')) return;let domain;try {domain = new URL(link.href).hostname;} catch(err) {return;}link.setAttribute('has-icon', true);const imageUrl = `https://icons.duckduckgo.com/ip3/${domain}.ico`;const container = document.createElement('span');container.style.paddingRight = '0.25em';container.style.paddingLeft = '0.25em';link.prepend(container);GM.addElement(container, 'img', {src: imageUrl,width: size,height: size});}function doit() {for (let link of document.querySelectorAll('.titleline > a')) {doOne(link);}}// dynamically loaded <a> tag for Autopagefunction aObserver() {const callback = (mutationsList, observer) => {for (const mutation of mutationsList) {for (const target of mutation.addedNodes) {if (target.nodeType != 1) returnif (target.tagName === 'A') {doOne(target);} else {for (let link of document.querySelectorAll('.titleline > a')) {doOne(link);}}}}};const observer = new MutationObserver(callback);observer.observe(document, { childList: true, subtree: true });}doit();aObserver();})();