Greasy Fork

Greasy Fork is available in English.

GiCon

Add favicon`s on google search page.

当前为 2020-10-01 提交的版本,查看 最新版本

// ==UserScript==
// @name           GiCon
// @version        0.1.7
// @description    Add favicon`s on google search page.
// @description:ru Добавляет иконки сайтов в поисковый ответ.
// @author         gvvad
// @run-at         document-start
// @include        http*://google.*/*
// @include        http*://www.google.*/*
// @include        http*://google.*.*/*
// @include        http*://www.google.*.*/*
// @noframes
// @grant          none
// @license        MIT; https://opensource.org/licenses/MIT
// @copyright      2020, gvvad
// @namespace      http://greasyfork.icu/users/100160
// ==/UserScript==

(function() {
    'use strict';

    //custom css rule for icon
    try {
        let styl = document.createElement("style");
        document.head.append(styl);
        styl.sheet.insertRule(".gicofav{position:absolute; top:0.2em; left:-1.8em;}");
    } catch(e) {
        console.error("GiCon:css rule error!");
        return;
    }

    //schedule on page load event
    document.documentElement.addEventListener("load", function() {
        try {
            let lst = document.querySelectorAll("#rcnt .g") || [];
            if (!lst.length) return;

            let reg = /:\/\/(.+?)(?:\/|$)/;

            let nimg = document.createElement("img");
            nimg.classList.add("gicofav");

            for (let item of lst) {
                try {
                    debugger;
                    if (item.querySelector(".gicofav")) {
                        continue;
                    }
                    let rc = item.querySelector(".rc");
                    if (!rc) continue;

                    let nhref = reg.exec(rc.querySelector("a").href)[1];
                    nimg.setAttribute("src", `http://www.google.com/s2/favicons?domain=${nhref}`);

                    rc.insertBefore(nimg, rc.childNodes[0]);
                } catch(e) {
                    continue;
                }
            }
        } catch(e) {
            console.error("GiCon:unexpected error!");
        }
    }, true);
})();