Tampermonkey:如果隐藏则显示一个元素(反之亦然)

问题描述 投票:0回答:1

我想根据键盘快捷键在YouTube上隐藏/显示一些div。一旦隐藏了div,就可以隐藏div,但不能显示它们。

// ==UserScript==
// @name         Youtube enhanced
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Youtube enhanced
// @author       You
// @include     *youtube.com/watch*
// for change CSS
// @grant    GM_addStyle

// ==/UserScript==


window.addEventListener("keydown", dispatchkeyboard, false);

function dispatchkeyboard(key) {
    // frontcolor

    if (key.altKey && key.code === "KeyC") { // KeyX
        alert("c")
        var hidden_or_display = document.getElementsByClassName("ytp-gradient-bottom")[0].style.display;
        alert(hidden_or_display)
        if (hidden_or_display == "none") {
            alert('none')
            var display = ".ytp-gradient-bottom,.ytp-gradient-top,.ytp-chrome-top,.ytp-chrome-bottom{display:block;}"
            var tag = document.createElement("style");
            tag.type = "text/css";
            document.getElementsByTagName("head")[0].appendChild(tag);
            tag[(typeof document.body.style.WebkitAppearance == "string") ? "innerText" : "innerHTML"] = display
        } else {
            alert('else')
            var goaway = ".ytp-gradient-bottom,.ytp-gradient-top,.ytp-chrome-top,.ytp-chrome-bottom{display:none;}";
            var tagd = document.createElement("style");
            tagd.type = "text/css";
            document.getElementsByTagName("head")[0].appendChild(tagd);
            tagd[(typeof document.body.style.WebkitAppearance == "string") ? "innerText" : "innerHTML"] = goaway
        }
    }

}
javascript userscripts
1个回答
1
投票

内联样式比样式表中声明的样式具有更高的优先级。通过样式表更改元素的样式不会更改嵌入式样式值。

我还没有安装坦帕蒙卡,所以未经测试,请更改

  var hidden_or_display = document.getElementsByClassName("ytp-gradient-bottom")[0].style.display;

to

  var element = document.getElementsByClassName("ytp-gradient-bottom")[0];
  var hidden_or_display = element.style.display;

  // toggle inline style
  element.style.display = hidden_or_display == "none" ? "block" : "none";
© www.soinside.com 2019 - 2024. All rights reserved.