您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
タイッツーthumbnail-youtube
当前为
// ==UserScript== // @name taittsuu-thumbnail-youtube // @namespace http://tampermonkey.net/ // @version 0.1 // @description タイッツーthumbnail-youtube // @author You // @license MIT // @match https://taittsuu.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=taittsuu.com // @grant GM_addStyle // ==/UserScript== (function() { 'use strict'; // Your code here... GM_addStyle( '.thumbnail-youtube-image{max-width:100%;}\n'+ '.thumbnail-youtube-image:hover{opacity:80%;}\n'); const addedNode = function (node) { //youtube var getid = function( url ){ if( url.match(/^https?:\/\/(?:(?:www\.|m\.|)youtube\.com\/watch\?.*v=|youtu\.be\/)([\w-]+)/) ){return RegExp.$1;} var href = url.split('?')[0]; if( href.match(/.*youtube.com\/shorts\/(.*)/) ){return RegExp.$1;} if( href.match(/.*youtube.com\/live\/(.*)/) ){return RegExp.$1;} return ''; } var list = []; const array = node.querySelectorAll('div.post-content > a'); array.forEach(function(a,index){ const id = getid(a.href); if(id){ list.push({href:a.href,id:id}); } }); if(list.length){ const target = node.querySelector('.post-content-wrapper > a'); const div = document.createElement('div'); div.classList.add('thumbnail-youtube'); target.append(div); list.forEach(function(item){ const a = document.createElement('a'); a.classList.add('thumbnail-youtube-link'); a.target = '_blank'; a.href = item.href; a.innerHTML = '<img class="thumbnail-youtube-image" src="https://i.ytimg.com/vi/'+item.id+'/mqdefault.jpg">'; div.append(a); }); } }; // 変更を監視するノードを選択 let targetNode = document.querySelector('#posts'); if(!targetNode) { targetNode = document.querySelector('#searchPosts'); } // (変更を監視する) オブザーバーのオプション const config = { childList: true }; // 変更が発見されたときに実行されるコールバック関数 const callback = function (mutationList, observer) { mutationList.forEach((mutation) => { switch (mutation.type) { case 'childList': if(mutation.addedNodes.length){ addedNode( mutation.addedNodes[0] ); } break; } }); }; // コールバック関数に結びつけられたオブザーバーのインスタンスを生成 const observer = new MutationObserver(callback); // 対象ノードの設定された変更の監視を開始 if(targetNode){ observer.observe(targetNode, config); } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址