您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Pin the latest message written by live owner or moderator to the top
当前为
// ==UserScript== // @name YouTube Sticky LiveChat // @name:ja YouTube Sticky LiveChat // @namespace https://i544c.github.io // @version 0.3.2 // @description Pin the latest message written by live owner or moderator to the top // @description:ja 生放送主とモデレータの最新のコメントを上に固定するユーザスクリプト // @author i544c // @match https://www.youtube.com/* // @grant none // ==/UserScript== (() => { let chatframe = null; const main = () => { console.log('Found LiveChat frame'); const style = document.createElement('style'); style.textContent = ` yt-live-chat-app { /* Global variables */ --line-length: 3; --message-height: calc(1em * var(--line-length) + 4px); } #item-offset { overflow: visible !important; } #items { transform: none !important; } yt-live-chat-text-message-renderer[author-type="owner"], yt-live-chat-text-message-renderer[author-type="moderator"] { background: var(--yt-spec-general-background-b); position: sticky; top: -1px; z-index: 1; height: var(--message-height); min-height: var(--message-height); } yt-live-chat-text-message-renderer[author-type="owner"]:hover, yt-live-chat-text-message-renderer[author-type="moderator"]:hover { height: 100% !important; } yt-live-chat-text-message-renderer[author-type="owner"] #content, yt-live-chat-text-message-renderer[author-type="moderator"] #content { align-self: normal; /* String truncate */ display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: var(--line-length); overflow: hidden; } yt-live-chat-text-message-renderer[author-type="owner"] #content:hover, yt-live-chat-text-message-renderer[author-type="moderator"] #content:hover { -webkit-box-orient: inline-axis; } `; chatframe.contentDocument.body.appendChild(style); }; const findInterval = window.setInterval(() => { console.log('Search LiveChat frame'); chatframe = document.querySelector('#chatframe'); if (chatframe) { chatframe.onload = main; window.clearInterval(findInterval); } }, 1000); })();