【问题标题】:Display Wikipedia pages clutter free using Tampermonkey使用 Tampermonkey 显示 Wikipedia 页面
【发布时间】:2020-09-24 23:47:53
【问题描述】:

在维基百科页面的末尾,有参考链接。我试图不显示参考列表,当单击参考链接的标题时会切换列表,例如“进一步阅读”、“注释”、“参考”等。每个参考列表都有类名“reflist”。我遇到的问题是,当我尝试在标题后找到带有 reflist 类的 div 时,

if (div.className == 'reflist') 语句不起作用。可能出了什么问题?

我写了以下代码。问题是当我单击“进一步阅读”时,“参考”的“重新列表”被切换。单击“参考”也会切换相同的“重新列表”。顺便说一句,我不是专业程序员...

if (document.getElementsByClassName("reflist")) {
    let x = document.getElementsByClassName("reflist");
    for (let i = 0; i < x.length; i++) {
        x[i].style.display = "none";
    }
}
function toggle(element) {
    element.style.display = element.style.display == "none" ? "block" : "none";
}
// furtherReading is <span> element.
var furtherReading = document.getElementById("Further_reading");
// parentElement is <h2> element
furtherReading.parentElement.style.background = '#f8f9fa';
furtherReading.parentNode.style.borderBottom = 'none';
furtherReading.style.cursor = "pointer";
var references = document.getElementById("References");
references.parentElement.style.background = '#f8f9fa';
references.parentElement.style.borderBottom = 'none';
references.style.cursor = "pointer";

if (furtherReading) {
    /* There may be other 'style' or 'div' elements before 'div' having className 'reflist' */
    let a = furtherReading.parentElement.nextElementSibling;
    while (a) {
        if (a.className == 'reflist') {
            break;
        } else
            a = a.nextElementSibling;
    }
    furtherReading.addEventListener("click", toggle.bind(null, a));
}

if (references) {
    let b = references.parentElement.nextElementSibling;
    while (b) {
        if (b.className == 'reflist') {
            break;
        } else
            b = b.nextElementSibling;
    }
    references.addEventListener("click", toggle.bind(null, b));
}

【问题讨论】:

    标签: firefox wikipedia tampermonkey


    【解决方案1】:

    试试下面的代码,用https://en.wikipedia.org/wiki/Perast

    测试
    // ==UserScript==
    // @name         Toggle Wikipedia Reference
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  Toggle Wikipedia Reference
    // @author       Ynjxsjmh
    // @match        *://*.wikipedia.org/wiki/*
    // @grant        none
    // ==/UserScript==
    
    
    (function() {
        'use strict';
        var reflist = document.getElementsByClassName("reflist")[0];
        var reference = document.getElementById("References");
        console.log("Toggle Wikipedia Reference");
        reflist.style.display = "none";
        console.log(reference);
        reference.addEventListener("click", toggleReference.bind(null, reflist));
    
        function toggleReference(element) {
           element.style.display = element.style.display == "none" ? "block" : "none";
        }
    })();
    

    问题是您应该手动获取 div,因为没有人帮助您循环遍历 div。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多