🎉 欢迎访问GreasyFork.Org 镜像站!本镜像站由公众号【爱吃馍】搭建,用于分享脚本。联系邮箱📮

Greasy fork 爱吃馍镜像

Google Infogalactic

-

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

🚀 安装遇到问题?关注公众号获取帮助

公众号二维码

扫码关注【爱吃馍】

回复【脚本】获取最新教程和防失联地址

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         Google Infogalactic
// @namespace    -
// @version      1.0
// @description  -
// @author       -
// @icon         https://google.com/favicon.ico
// @include      https://www.google.*/search?*
// @grant        GM.xmlHttpRequest
// ==/UserScript==

(() => {
    const box = document.querySelector('.kp-wholepage .kno-rdesc');
    if (!box) return;
    
    const heading = document.querySelector('.kp-wholepage span[role="heading"], .kp-wholepage h2')?.innerText;
    if (!heading) return;

    const url = 'https://infogalactic.com/info/Special:Search/' + heading;

    GM.xmlHttpRequest({
        url,
        method: 'GET',
        headers: {
            Origin: 'infogalactic.com'
        },
        onload: res => {
            if (res.status !== 200) return console.warn('Bad status from infogalactic:', res.status);
            let txt = res.responseText.replace(/<table[^<>]*>((.|\n)*?)<\/table>/g, '');
            let r = /id="mw-content-text"(?:.|\n)*?<p>((.|\n)*?)<\/p>/g.exec(txt);
            if (!r) return console.warn('Infogalactic returned a bad body, or no matching articles were found');
            let regex = /<p>((?:.|\n)*?)<\/p>/g;
            txt = res.responseText.substring(r.index);
            while (r && r[1].length < 10) {
                r = regex.exec(txt);
            }
            if (!r) return console.warn('Infogalactic returned a bad body, or no matching articles were found');
            const el = document.createElement('div');
            el.innerHTML = r[1];
            [...el.querySelectorAll('sup')].forEach(ref => ref.remove());
            box.innerHTML = `<span>${el.innerText}</span><span> </span><a href="${url}">Infogalactic</a>`;
        },
        onerror: console.warn
    });
})();