您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Display "https://www.youtube.com/watch?v=***********" of embedded YouTube videos.
当前为
- // ==UserScript==
- // @name video watch page URL
- // @name:ja 埋め込み動画にURL表示
- // @namespace https://greasyfork.org/users/19523
- // @description Display "https://www.youtube.com/watch?v=***********" of embedded YouTube videos.
- // @description:ja ページに埋め込まれたYouTubeの動画の下に動画視聴ページのURLを付け加えます
- // @include *
- // @exclude http://www.youtube.com/*
- // @exclude https://www.youtube.com/*
- // @version 0.3.1
- // @grant none
- // ==/UserScript==
- (function () {
- var style = document.createElement('style');
- style.type = 'text/css';
- style.appendChild(document.createTextNode(`\
- a.youtube-url {
- position: relative;
- display: table;
- font-size: initial;
- }`));
- document.getElementsByTagName('head')[0].appendChild(style);
- var target = document.getElementsByTagName('body')[0];
- var config = { childList: true, subtree: true };
- var observer = new MutationObserver(function (mutations) {
- insertURL();
- });
- window.addEventListener('load', insertURL);
- function insertURL() {
- observer.disconnect();
- var elements = document.querySelectorAll('iframe[src*="//www.youtube.com/embed/"]:not([class~="youtube-url"])');
- for (var i = 0, element; element = elements[i]; i++) {
- var a = document.createElement('a');
- if (element.src.indexOf('videoseries') >= 0) {
- a.href = element.src.replace(/embed\/videoseries/, 'playlist');
- } else {
- a.href = element.src.split('?')[0].replace(/embed\//, 'watch?v=');
- }
- a.appendChild(document.createTextNode(a.href));
- element.className += a.className = ' youtube-url';
- if (element.parentElement.children.length <= 2 && element.parentElement.parentElement) {
- element = element.parentElement;
- }
- element.parentElement.insertBefore(a, element.nextSibling);
- console.log('Detected URL: %s', elements[i].src);
- }
- var elements = document.querySelectorAll('iframe[src*="//www.youtube-nocookie.com/embed/"]:not([class~="youtube-url"])');
- for (var i = 0, element; element = elements[i]; i++) {
- var a = document.createElement('a');
- if (element.src.indexOf('videoseries') >= 0) {
- a.href = element.src.replace(/-nocookie\.com\/embed\/videoseries/, '.com/playlist');
- } else {
- a.href = element.src.split('?')[0].replace(/-nocookie\.com\/embed\//, '.com/watch?v=');
- }
- a.appendChild(document.createTextNode(a.href));
- element.className += a.className = ' youtube-url';
- if (element.parentElement.children.length <= 2 && element.parentElement.parentElement) {
- element = element.parentElement;
- }
- element.parentElement.insertBefore(a, element.nextSibling);
- console.log('Detected URL: %s', elements[i].src);
- }
- var elements = document.querySelectorAll('iframe[data-src*="//www.youtube.com/embed/"]:not([class~="youtube-url"])');
- for (var i = 0, element; element = elements[i]; i++) {
- var a = document.createElement('a');
- if (element.src.indexOf('videoseries') >= 0) {
- a.href = element.src.replace(/embed\/videoseries/, 'playlist');
- } else {
- a.href = element.src.split('?')[0].replace(/embed\//, 'watch?v=');
- }
- a.appendChild(document.createTextNode(a.href));
- element.className += a.className = ' youtube-url';
- if (element.parentElement.children.length <= 2 && element.parentElement.parentElement) {
- element = element.parentElement;
- }
- element.parentElement.insertBefore(a, element.nextSibling);
- console.log('Detected URL: %s', elements[i].src);
- }
- var elements = document.querySelectorAll('iframe[data-src*="//www.youtube-nocookie.com/embed/"]:not([class~="youtube-url"])');
- for (var i = 0, element; element = elements[i]; i++) {
- var a = document.createElement('a');
- if (element.src.indexOf('videoseries') >= 0) {
- a.href = element.src.replace(/-nocookie\.com\/embed\/videoseries/, '.com/playlist');
- } else {
- a.href = element.src.split('?')[0].replace(/-nocookie\.com\/embed\//, '.com/watch?v=');
- }
- a.appendChild(document.createTextNode(a.href));
- element.className += a.className = ' youtube-url';
- if (element.parentElement.children.length <= 2 && element.parentElement.parentElement) {
- element = element.parentElement;
- }
- element.parentElement.insertBefore(a, element.nextSibling);
- console.log('Detected URL: %s', elements[i].src);
- }
- // Flash-embedded videos
- var elements = document.querySelectorAll('embed[src*="//www.youtube.com/v/"]:not([class~="youtube-url"])');
- for (var i = 0, element; element = elements[i]; i++) {
- var a = document.createElement('a');
- a.href = element.src.split('?')[0].replace(/v\//, 'watch?v=');
- a.appendChild(document.createTextNode(a.href));
- element.className += a.className = ' youtube-url';
- element.parentElement.insertBefore(a, element.nextSibling);
- console.log('Detected URL: %s', elements[i].src);
- }
- var elements = document.querySelectorAll('embed[src*="//www.youtube-nocookie.com/v/"]:not([class~="youtube-url"])');
- for (var i = 0, element; element = elements[i]; i++) {
- var a = document.createElement('a');
- a.href = element.src.split('?')[0].replace(/-nocookie\.com\/v\//, '.com/watch?v=');
- a.appendChild(document.createTextNode(a.href));
- element.className += a.className = ' youtube-url';
- element.parentElement.insertBefore(a, element.nextSibling);
- console.log('Detected URL: %s', elements[i].src);
- }
- observer.observe(target, config);
- }
- })();