您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Linkify video titles on PornHub
// ==UserScript== // @name PH Video links // @version 1.2.1 // @description Linkify video titles on PornHub // @author salad: https://greasyfork.org/en/users/241444-salad // @include https://www.pornhub.com/view_video.php?* // @grant none // @namespace https://greasyfork.org/users/241444 // ==/UserScript== (function() { const playerWrap = document.getElementById('player'); if(!playerWrap) { console.error('playerWrap element not found'); return; } let observer; let sourceElement; const observerConfig = { attributes: true, childList: true, subtree: true }; // once source is defined, set title element const setLink = () => { // video title element const title = document.querySelector('h1.title>span'); // video title const titleText = title.innerHTML; // username if any const username = document.querySelector('.video-info-row .usernameWrap'); const usernameText = (username !== null) ? username.innerText : 'unknown'; // video source url const sourceUrl = sourceElement.getAttribute('src'); // wrap in a link const link = `<a href="${sourceUrl}">${usernameText} - ${titleText}</a>`; title.innerHTML = link; // also update the page title document.title = `${usernameText} - ${titleText}`; } // Callback function to execute when mutations are observed const checkForSource = () => { const source = playerWrap.querySelector('source[src]'); if(source && source.getAttribute('src')) { sourceElement = source; setLink(); observer.disconnect(); } }; observer = new MutationObserver(checkForSource); observer.observe(playerWrap, observerConfig); // initial run checkForSource(); })();