Change YouTube logo link to user's subscription feed instead of homepage (only when logged in)
当前为
// ==UserScript==
// @name Youtube Logo - Link to subscriptions feed
// @namespace Youtube Logo - Link to subscriptions feed
// @description Change YouTube logo link to user's subscription feed instead of homepage (only when logged in)
// @version 1.1.7
// @include /http|https://.*\.youtube\..*/
// @supportURL https://greasyfork.org/en/scripts/13582/feedback
// @author aciid
// ==/UserScript==
function checkLogoLoaded(){
var loopCount = 1;
var loopInterval = setInterval(function(){
var LogoElement = document.getElementById("logo").getElementsByTagName("a")[0];
var UserLoggedIn = document.getElementById("end").getElementsByTagName("ytd-notification-topbar-button-renderer") != null;
try {LogoElement.getElementsByTagName("area")[0].href = "/feed/subscriptions";} catch (e) {} // Update special event logo URL - try catch used to suppress error
//console.info("Searching for logo - Loop: " + loopCount + " LogoElement: " + (LogoElement != null) + " UserLoggedIn: " + UserLoggedIn);
if((LogoElement != null && UserLoggedIn) || loopCount >= 120){ // Loop to wait up to 60 seconds for YouTube logo
//LogoElement.href = "/feed/subscriptions";
LogoElement.addEventListener("click", function(){window.location.href = "/feed/subscriptions";}); // Force page redirection
clearInterval(loopInterval); // Stop loop
}
loopCount++;
}, 500); // Loop with 500ms sleep
}
function runScriptOldLogo() {
var LogoElement = document.getElementById("logo-container"); // Get logo element
try {LogoElement.getElementsByTagName("area")[0].href = "/feed/subscriptions";} catch (e) {} // Update special event logo URL - try catch used to suppress error
if (document.getElementById("yt-masthead-user") != null
|| document.getElementById("end").getElementsByTagName("ytd-notification-topbar-button-renderer") != null) {// Check user is logged in (old design)
LogoElement.href = "/feed/subscriptions"; // Update logo element URL
}
}
console.info("Running Youtube Logo - Link to subscriptions feed");
document.getElementsByTagName("body")[0].addEventListener("yt-navigate-finish", checkLogoLoaded); // New youtube design
window.addEventListener("spfdone", runScriptOldLogo); // Old youtube design
window.onload = setTimeout(function(){checkLogoLoaded(),runScriptOldLogo();}, 1); // Execute script after page load