由于最近的更改,无法删除 youtube 标头
Cannot remove youtube masthead since recent change
我不喜欢 youtube 顶部的 "masthead"(包含搜索栏的部分),因为您无法将它滚动到屏幕之外。
我试图按照下面的方式删除它,但它不起作用。它曾经有效,但 youtube 几天前更改了他们的页面。他们当前的页面非常复杂。我尝试了不同的@run-at 可能性:document-end、document-start、document-idle。它始终显示 "bad child" 弹出窗口。
可以在 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");
您可以使用超时,重试直到成功。
if (!child) { alert("bad child: " + id); return; }
把这个^变成
if (!child) { console.log("bad child: " + id); setTimeout(rem, 3000, "masthead-container"); return; }
这可能会增加一些递归调用,但它最终会起作用。
根据两位帮助过我的人的回答,有两种解决方法:
来自萍琪派:
// ==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);
我不喜欢 youtube 顶部的 "masthead"(包含搜索栏的部分),因为您无法将它滚动到屏幕之外。
我试图按照下面的方式删除它,但它不起作用。它曾经有效,但 youtube 几天前更改了他们的页面。他们当前的页面非常复杂。我尝试了不同的@run-at 可能性:document-end、document-start、document-idle。它始终显示 "bad child" 弹出窗口。
可以在 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");
您可以使用超时,重试直到成功。
if (!child) { alert("bad child: " + id); return; }
把这个^变成
if (!child) { console.log("bad child: " + id); setTimeout(rem, 3000, "masthead-container"); return; }
这可能会增加一些递归调用,但它最终会起作用。
根据两位帮助过我的人的回答,有两种解决方法:
来自萍琪派:
// ==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);