我想基于键盘快捷键在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
}
}
}
答案 0 :(得分:1)
内联样式比样式表中声明的样式具有更高的优先级。通过样式表更改元素的样式不会更改嵌入式样式值。
我没有安装tampermonkey,所以未经测试,请更改
var hidden_or_display = document.getElementsByClassName("ytp-gradient-bottom")[0].style.display;
到
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";