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.4
// @include /http|https://.*youtube\..*/
// @supportURL https://greasyfork.org/en/scripts/13582/feedback
// @author aciid
// ==/UserScript==
// console.info("Running Youtube Logo - Link to subscriptions feed");
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;
//console.info("Searching for logo - Loop: " + loopCount + " LogoElement: " + (LogoElement != null) + " UserLoggedIn: " + UserLoggedIn);
if((LogoElement != null && UserLoggedIn) || loopCount >= 10){ // 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() {
LogoElement.getElementsByTagName('area')[0].href = "/feed/subscriptions"; // Update special event logo URL
if (document.getElementById("yt-masthead-user") != null
|| document.getElementById("end").getElementsByTagName("ytd-notification-topbar-button-renderer") != null) {// Check user is logged in (old design)
var LogoElement = document.getElementById("logo-container"); // Get logo element
LogoElement.href = "/feed/subscriptions"; // Update logo element URL
}
}
//document.addEventListener("DOMContentLoaded", checkLogoLoaded);
//window.addEventListener("load", checkLogoLoaded);
//document.getElementsByTagName("body")[0].addEventListener("yt-navigate-start", checkLogoLoaded);
//document.addEventListener('readystatechange', runScript);
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