返回首頁 

Greasy Fork is available in English.

No Embed Youtube

replace embed iframe, object with anchor link.


安装此脚本?
// ==UserScript==// @name No Embed Youtube// @version 3.0.0// @description replace embed iframe, object with anchor link.// @homepageURL https://github.com/eight04/no-embed-youtube// @supportURL https://github.com/eight04/no-embed-youtube/issues// @license MIT// @author eight04 <[email protected]>// @namespace eight04.blogspot.com// @include http*// @exclude http://www.youtube.com/*// @exclude https://www.youtube.com/*// @exclude https://vimeo.com/*// @run-at document-start// @grant none// ==/UserScript=="use strict";var xpath = `(//iframe[contains(@src, 'youtube.com/embed/') orcontains(@src, 'youtube.com/v/') orcontains(@src, 'youtube-nocookie.com/embed/') orcontains(@src, 'youtube-nocookie.com/v/') orcontains(@data-src, 'youtube.com/embed/') orcontains(@src, 'vimeo.com/video')] |//object[./param[contains(@value, 'youtube.com/v/')]] |//embed[contains(@src, 'youtube.com/v/') andnot(ancestor::object)])[not(ancestor::*[@id='YTLT-player'])]`;const patterns = [{test: /youtube(-nocookie)?\.com\/(embed|v)\/(.+?)(\?|&|$)/,repl: match => `https://www.youtube.com/watch?v=${match[3]}`},{test: /vimeo\.com\/video\/(\d+)/,repl: match => `https://vimeo.com/${match[1]}`}];var unEmbed = function(node){var r###lt = document.evaluate(xpath, node, null, XPathR###lt.UNORDERED_NODE_SNAPSHOT_TYPE, null);var element = null;var i = 0, j;while ((element = r###lt.snapshotItem(i++))) {// iframe or embedvar url = element.src || element.dataset.src;// objectif(!url){for(j = 0; j < element.childNodes.length; j++){var pa = element.childNodes[j];if(pa.nodeName == "PARAM" && pa.getAttribute("name") == "movie"){url = pa.getAttribute("value");break;}}}if(!url){continue;}for (const pattern of patterns) {const match = url.match(pattern.test);if (!match) continue;const newUrl = pattern.repl(match);var a = document.createElement("a");a.textContent = newUrl;a.href = newUrl;a.target = "_blank";a.className = "unembed";element.parentNode.replaceChild(a, element);break;}}};new MutationObserver(function(){if (document.body) {unEmbed(document.body);}}).observe(document, {childList: true,subtree: true});