Pixiv-删除无用元素

隐藏无用的、看起来意义不明的 iframe 元素造成的空白。

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

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

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name                Pixiv-DeleteNoNeed
// @name:zh-CN          Pixiv-删除无用元素
// @name:ja             Pixiv-不要な要素を削除
// @namespace           https://github.com/TitanRGB
// @version             1.2
// @description         Hide no need iframe elements which looks like empty space with no meaning.
// @description:zh-CN   隐藏无用的、看起来意义不明的 iframe 元素造成的空白。
// @description:ja      無駄で意味不明に見えるiframe要素による空白を隠す。
// @author              https://github.com/TitanRGB
// @icon                data:image/png;base64,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
// @match               http*://pixiv.net
// @match               http*://pixiv.net/*
// @match               http*://www.pixiv.net
// @match               http*://www.pixiv.net/*
// @license             MPL-2.0
// @license^            Mozilla Public License 2.0
// @grant               unsafeWindow
// @homepageURL         https://github.com/SynRGB/Pixiv-DeleteNoNeed
// @contributionURL     https://github.com/SynRGB/Pixiv-DeleteNoNeed
// @copyright           Copyright © 2022-PRESENT, TitanRGB (https://github.com/TitanRGB)
// @charset             UTF-8
// @run-at              document-end
// ==/UserScript==

let last_run_time = new Date().getTime();

let main = function () {
    let iframe = document.querySelectorAll('iframe');
    for (let i = 0; i < iframe.length; i++) {
        let parent = iframe[i].parentElement;
        if (parent.tagName === 'LI' && iframe[i].name === 'relatedworks') {
            parent.style.display = 'none';
        }
        if (parent.tagName === 'DIV' && iframe[i].name === 'header') {
            parent.style.display = 'none';
        }
    }

    const xpath = '//*[@id="root"]/div[2]/div/div[2]/div[2]';
    const element = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

    if (element) {
        // 检查元素是否只包含空白字符或没有子元素
        if (!element.hasChildNodes() || /^\s*$/.test(element.innerHTML)) {
            element.parentNode.removeChild(element);
        }
    }

    last_run_time = new Date().getTime();
}

let MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
let observer = new MutationObserver(function (mutations) {
    mutations.forEach(function () {
        if (new Date().getTime() - last_run_time > 100) {
            main();
        }
    });
});
observer.observe(document.body, {
    childList: true,
    subtree: true
});

console.log("JS script Pixiv-DeleteNoNeed (Pixiv-删除无用元素) loaded. See more details at https://github.com/SynRGB/Pixiv-DeleteNoNeed");