您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
B站快速携带标题搜索Youtube
// ==UserScript== // @name B站转YouTube // @namespace http://tampermonkey.net/ // @version v2.0 // @description B站快速携带标题搜索Youtube // @author SJ // @match *://www.bilibili.com/video/* // @icon https://www.google.com/s2/favicons?sz=64&domain=youtube.com // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; function createYouTubeButton(title) { const link = document.createElement('a'); link.href = `https://www.youtube.com/results?search_query=${encodeURIComponent(title)}`; link.target = '_blank'; link.title = `在YouTube搜索:${title}`; link.style.display = 'inline-flex'; link.style.alignItems = 'center'; link.style.transition = 'transform 0.2s ease'; link.addEventListener('mouseenter', () => { link.style.transform = 'scale(1.1)'; }); link.addEventListener('mouseleave', () => { link.style.transform = 'scale(1)'; }); const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute("viewBox", "0 0 1024 1024"); svg.setAttribute("width", "30"); svg.setAttribute("height", "30"); svg.style.marginRight = "5px"; const path1 = document.createElementNS("http://www.w3.org/2000/svg", "path"); path1.setAttribute("d", "M941.3 296.1c-10.3-38.6-40.7-69-79.2-79.3C792.2 198 512 198 512 198s-280.2 0-350.1 18.7C123.3 227 93 257.4 82.7 296 64 366 64 512 64 512s0 146 18.7 215.9c10.3 38.6 40.7 69 79.2 79.3C231.8 826 512 826 512 826s280.2 0 350.1-18.8c38.6-10.3 68.9-40.7 79.2-79.3C960 658 960 512 960 512s0-146-18.7-215.9zM423 646V378l232 133-232 135z"); path1.setAttribute("fill", "#d81e06"); svg.appendChild(path1); link.appendChild(svg); return link; } function injectButtonToTitle() { const titleContainer = document.querySelector(".video-info-title-inner"); if (!titleContainer) return; const h1Element = titleContainer.querySelector("h1"); if (!h1Element) return; const title = h1Element.innerText.trim(); if (!title) return; if (titleContainer.querySelector(".youtube-search-button")) return; const youTubeButton = createYouTubeButton(title); youTubeButton.className = "youtube-search-button"; titleContainer.insertBefore(youTubeButton, h1Element); } function observeTitleArea() { const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { injectButtonToTitle(); } } }); const titleArea = document.querySelector(".video-info-title") || document.body; observer.observe(titleArea, { childList: true, subtree: true }); } window.addEventListener('load', () => { setTimeout(() => { injectButtonToTitle(); observeTitleArea(); }, 1000); }); })();