実現したいこと
- YouTubeのミニサイドメニューに後で見るを追加もしくはマイページを後で見るに変更
前提
Violentmonkeyを使ってます
他のボタンと同じようにアイコンとテキストを表示させたい
試したこと
JavaScriptで以下のコードを試したりもしましたが後で見るが縦書きになるなどうまくいきませんでした
JavaScript
1(function() { 2 'use strict'; 3 4 function addWatchLaterLink() { 5 const offlineEntry = document.querySelector( 6 'ytd-mini-guide-entry-renderer[aria-label="マイページ"]'); 7 if (offlineEntry && !document.querySelector('a[href="/playlist?list=WL"]')) { 8 const link = document.createElement('a'); 9 link.href = '/playlist?list=WL'; 10 link.textContent = '後で見る'; 11 link.style.cssText = 12 'padding: 10px; font-size: 10px; color: #fff; text-decoration: none; display: flex; align-items: center;'; 13 14 // アイコンの追加(SVGデータURLを使用) 15 const icon = document.createElement('img'); 16 icon.src = 'data:image/svg+xml;base64,' + btoa(` 17 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"> 18 <path fill="#FFF" d="M14.97 16.95 10 13.87V7h2v5.76l4.03 2.49-1.06 1.7zM12 3c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9m0-1c5.52 0 10 4.48 10 10s-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2z"/> 19 </svg>` 20 ); 21 icon.alt = '後で見るアイコン'; 22 icon.style.cssText = 'width: 24px; height: 24px; margin-right: 8px;'; 23 24 25 // アイコンをリンクの前に追加 26 link.insertBefore(icon, link.firstChild); 27 28 // リンクを挿入 29 offlineEntry.parentNode.insertBefore(link, offlineEntry.nextSibling); 30 } 31 }; 32 33 // DOMの変更を監視するMutationObserverを作成 34 const observer = new MutationObserver(function(mutations) { 35 for (const mutation of mutations) { 36 if (mutation.type === 'childList') { 37 console.log('DOMが変更されました'); 38 addWatchLaterLink(); 39 } 40 } 41 }); 42 43 // ドキュメントボディの変更を監視開始 44 observer.observe(document.body, { 45 childList: true, 46 subtree: true 47 }); 48})();
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/09/04 23:06