我不喜欢youtube顶部的“标头”(包含搜索栏的部分),因为你无法将其从屏幕上滚动。
我试图将其删除,如下所示,但它不起作用。它曾经工作,但youtube几天前改变了他们的页面。他们目前的页面非常复杂。我尝试过不同的@ run-at可能性:document-end,document-start,document-idle。它总是显示“坏孩子”弹出窗口。
可以使用元素检查器并删除节点在Firefox中删除它。
// ==UserScript==
// @name YouTube
// @namespace X
// @include https://www.youtube.com/*
// @version 1
// @grant none
// @run-at document-idle
// ==/UserScript==
function rem(id) {
var child = document.getElementById(id);
if (!child) { alert("bad child: " + id); return; }
var parent = child.parentElement;
if (!parent) { alert("bad parent: " + id); return; }
parent.removeChild(child);
}
rem("masthead-container");
答案 0 :(得分:0)
你可以使用超时,重试它直到它工作。
if (!child) { alert("bad child: " + id); return; }
将此^变为
if (!child) { console.log("bad child: " + id); setTimeout(rem, 3000, "masthead-container"); return; }
这可能会增加一些递归调用,但最终会有效。
答案 1 :(得分:0)
根据帮助我的两个人的答案,这里有两个解决方案:
来自Pinkie Pie:
// ==UserScript==
// @name YouTube
// @namespace X
// @include https://www.youtube.com/*
// @version 1
// @grant none
// @run-at document-end
// ==/UserScript==
function remove_masthead() {
var child = document.getElementById("masthead-container");
if (child) {
child.parentElement.removeChild(child);
setTimeout(scroll, 1000, 0, 80);
}
else
setTimeout(remove_masthead, 1000);
}
remove_masthead();
来自wOxxOm:
// ==UserScript==
// @name YouTube
// @namespace X
// @include https://www.youtube.com/*
// @version 1
// @grant GM_addStyle
// @run-at document-end
// ==/UserScript==
GM_addStyle("#masthead-container.ytd-app { position: static !important; } #page-manager.ytd-app { margin-top: 0 !important; }")
setTimeout(scroll, 3000, 0, 80);