您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Inline embed for youtube links in reddit-stream.com
// ==UserScript== // @name reddit-stream youtube // @description Inline embed for youtube links in reddit-stream.com // @namespace org.stevenhoward // @include http://reddit-stream.com/* // @version 1 // @grant none // ==/UserScript== function createYoutubeEmbed (link) { let match = /.*[/]watch\?v=(.*)/.exec(link.href); let frame = document.createElement('iframe'); if (match && match.length && match.length == 2) { frame.width = 640; frame.height = 390; frame.frameBorder = 0; frame.style.display = 'block'; frame.src = `https://www.youtube.com/embed/${match[1]}?autoplay=1`; } /* Return an empty iframe for malformed urls. Don't care about errors for now. */ return frame; } function addVideoExpando (link) { let toggle = document.createElement('a'); toggle.href = 'javascript: void(0)'; toggle.innerHTML = ' (+)'; toggle.style.opacity = 0.5; toggle.addEventListener('click', function () { let existingFrame = link.parentNode.querySelector('iframe'); if (existingFrame) { existingFrame.remove(); toggle.innerHTML = ' (+)'; } else { let frame = createYoutubeEmbed(link); toggle.parentNode.insertBefore(frame, toggle.nextSibling); toggle.innerHTML = ' (-)'; } }); link.parentNode.insertBefore(toggle, link.nextSibling); } new MutationObserver(function (mutations) { for (let mutation of mutations) { for (let node of mutation.addedNodes) { if (node.nodeType == Node.ELEMENT_NODE) { for (let video of node.querySelectorAll('a[href*="youtube.com"]')) { addVideoExpando(video); } } } } }).observe(document.getElementById('c-main'), { childList: true, subtree: true }); for (let video of document.querySelectorAll('#c-main a[href*="youtube.com"]')) { addVideoExpando(video); }