facebook_ctSeach

输出ssl的查询结果

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         facebook_ctSeach
// @namespace    https://github.com/rixoye/demo_js
// @version      0.5
// @description  输出ssl的查询结果
// @author       rixoye
// @include      https://developers.facebook.com/tools/ct/search/*
// @license      AGPL-3.0
// ==/UserScript==


(() => {
    "use strict";
    let domain_set = new Set();
    function getDomain(){
        const elements = document.getElementsByClassName("_4etw")
        if (elements.length > 0) {
            for (let i = 0; i < elements.length; i++) {
                let raw = elements[i].childNodes[0].innerText;
                let sep = raw.indexOf("\n");
                if (sep != -1) {
                    //有多个子域名
                    while(sep!=-1){
                        domain_set.add(raw.slice(0,sep));
                        raw = raw.slice(sep+1,raw.length);
                        sep = raw.indexOf("\n");
                    }
                    domain_set.add(raw.slice(sep+1,raw.length));
                }else{
                    //只有一个子域名
                    domain_set.add(raw);
                }
            }
        }
    }

    function addResult(){
        let tbArea = document.getElementsByClassName("_3a8w _4-u3")[3];
        let td = document.createElement("td");
        td.className = "_4-ss _4-sv";
        td.id = "domain_table"
        for(let d of domain_set){
            var oLi = document.createElement('li');
            td.appendChild(oLi);
            oLi.innerHTML = d;
        }
        tbArea.insertBefore(td,tbArea.firstChild);
    }

    setTimeout(() => {
        let btnArea = document.getElementsByClassName("_1jbo  _4are")[0];
        let btn = document.createElement("button");
        let VEnable = true;
        btn.id = "addtb";
        btn.textContent = VEnable ? "显示域名列表" : "移除域名列表";
        btn.addEventListener("click", () => {
            VEnable = !VEnable;
            btn.textContent = VEnable ? "显示域名列表" : "移除域名列表";
            if (VEnable) {
                document.getElementById("domain_table").remove();
            } else {
                getDomain();
                addResult();
            }
        });

        btnArea.insertBefore(btn, null);
    }, 3000);

})();