您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Moves comments to the right side and adds a button to toggle between comments and recommended videos
- // ==UserScript==
- // @name Show YouTube comments while watching 2025 (MacOS)
- // @description Moves comments to the right side and adds a button to toggle between comments and recommended videos
- // @version 3.6
- // @author barn852 & Eloren1
- // @license MIT
- // @match *://*.youtube.com/*
- // @include *://*.youtube.com/watch*
- // @grant none
- // @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js
- // @run-at document-end
- // @noframes
- // @namespace https://greasyfork.org/users/572660
- // ==/UserScript==
- (function() {
- 'use strict';
- let showComments = true; // Show comments by default
- const moveComments = () => {
- let comments = document.getElementById('comments');
- let sidebar = document.querySelector('#secondary-inner');
- if (comments && sidebar && !sidebar.contains(comments)) {
- // Create a new container for the scrollable comments
- let commentsContainer = document.createElement('div');
- commentsContainer.id = 'comments-container';
- commentsContainer.style.overflowY = 'auto';
- commentsContainer.style.maxHeight = 'calc(100vh - 60px)';
- commentsContainer.style.width = '100%';
- commentsContainer.appendChild(comments);
- // Append the new container to the sidebar
- sidebar.appendChild(commentsContainer);
- console.log('Moved comments to the right side');
- }
- };
- const updateView = () => {
- let comments = document.getElementById('comments');
- let related = document.getElementById('related');
- if (comments && related) {
- comments.style.display = showComments ? 'block' : 'none';
- related.style.display = showComments ? 'none' : 'block';
- }
- };
- const toggleView = () => {
- showComments = !showComments;
- updateView();
- };
- const observer = new MutationObserver(() => {
- moveComments();
- updateView();
- });
- observer.observe(document.body, { childList: true, subtree: true });
- let button = document.createElement('button');
- button.innerHTML = '<svg width="24" height="24" viewBox="0 0 22 22"><g fill="currentColor"><path d="M4 14h4v-4H4v4zm0 5h4v-4H4v4zM4 9h4V5H4v4zm5 5h12v-4H9v4zm0 5h12v-4H9v4zM9 5v4h12V5H9z"/></g></svg>';
- button.style = 'background: transparent; border: 0; color: rgb(96,96,96); outline: 0; cursor: pointer; padding: 5px 10px;';
- button.onclick = toggleView;
- let waitButton = setInterval(() => {
- let menu = document.getElementById('end');
- if (menu) {
- clearInterval(waitButton);
- menu.insertBefore(button, menu.lastElementChild);
- updateView();
- }
- }, 500);
- // Prevent YouTube from showing comments on hover
- document.addEventListener('mouseover', (event) => {
- if (!showComments && event.target.closest('#related')) {
- let comments = document.getElementById('comments');
- if (comments) {
- comments.style.display = 'none';
- }
- }
- });
- })();