您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在磁力链接下方增加【在线播放】地址
// ==UserScript== // @name Javbus在线播放 // @namespace Violentmonkey Scripts // @version 3.1 // @description 在磁力链接下方增加【在线播放】地址 // @match https://www.javbus.com/* // @grant GM_xmlhttpRequest // @license All Rights Reserved // ==/UserScript== (function() { 'use strict'; // 如果当前页面包含 "forum",则不执行脚本 if (window.location.href.includes("forum")) { return; } // 提取视频的识别码 var codeElement = document.querySelector('.col-md-3.info span[style="color:#CC0000;"]'); if (codeElement) { var code = codeElement.innerText.trim().toLowerCase(); // 确保识别码为小写 console.log('识别码: ' + code); // 创建在线播放区域 var playArea = createPlayArea(code); // 将播放区域插入到磁力链接容器下方 var magnetTable = document.getElementById("magnet-table"); if (magnetTable) { var row = document.createElement("tr"); var cell = document.createElement("td"); cell.colSpan = 3; cell.appendChild(playArea); row.appendChild(cell); magnetTable.parentNode.insertBefore(row, magnetTable.nextSibling); } } /** * 创建在线播放区域 * @param {string} code 识别码 * @returns {HTMLElement} 播放区域元素 */ function createPlayArea(code) { var playArea = document.createElement("div"); playArea.className = "play-area"; playArea.style.border = "1px solid #ccc"; playArea.style.padding = "15px"; playArea.style.marginTop = "15px"; playArea.style.borderRadius = "8px"; playArea.style.backgroundColor = "#ffffff"; playArea.style.boxShadow = "0 4px 8px rgba(0, 0, 0, 0.1)"; var title = document.createElement("h3"); title.textContent = "在线播放"; title.style.marginBottom = "15px"; title.style.color = "#333"; title.style.fontFamily = "Arial, sans-serif"; var linkList = document.createElement("ul"); linkList.className = "link-list"; linkList.style.listStyle = "none"; linkList.style.padding = "0"; var links = [ { name: "Javgg", url: `https://javgg.net/jav/sdam-074/${code}` }, { name: "Javmost", url: `https://www5.javmost.com/${code}` }, { name: "Njav", url: `https://njav.tv/zh/v/${code}` }, { name: "Jable", url: `https://jable.tv/videos/${code}/` } ]; links.forEach(link => { var listItem = createLink(link.name, link.url); linkList.appendChild(listItem); checkLinkStatus(listItem); // 检查超链接状态 }); playArea.appendChild(title); playArea.appendChild(linkList); return playArea; } /** * 创建超链接元素 * @param {string} title 链接标题 * @param {string} url 链接地址 * @returns {HTMLElement} 超链接列表项 */ function createLink(title, url) { var link = document.createElement("li"); link.style.marginBottom = "10px"; var linkText = document.createElement("a"); linkText.textContent = title; linkText.href = url; linkText.target = "_blank"; linkText.style.textDecoration = "none"; linkText.style.color = "#007BFF"; linkText.style.fontWeight = "bold"; linkText.style.fontFamily = "Arial, sans-serif"; linkText.style.transition = "color 0.3s"; linkText.addEventListener("mouseover", function() { linkText.style.color = "#0056b3"; }); linkText.addEventListener("mouseout", function() { linkText.style.color = "#007BFF"; }); var linkTitle = document.createElement("span"); linkTitle.style.marginLeft = "10px"; linkTitle.style.fontSize = "0.9em"; linkTitle.style.color = "#666"; link.appendChild(linkText); link.appendChild(linkTitle); return link; } /** * 检查超链接状态并获取标题 * @param {HTMLElement} link 链接列表项 */ function checkLinkStatus(link) { GM_xmlhttpRequest({ method: "HEAD", url: link.firstChild.href, onload: function(response) { if (response.status === 200) { link.firstChild.style.color = "green"; link.lastChild.textContent = " ✅"; getLinkTitle(link.firstChild.href, link.lastChild); } else { link.firstChild.style.color = "red"; link.lastChild.textContent = " ❌"; } } }); } /** * 获取链接页面标题 * @param {string} url 链接地址 * @param {HTMLElement} titleElement 用于显示标题的元素 */ function getLinkTitle(url, titleElement) { GM_xmlhttpRequest({ method: "GET", url: url, onload: function(response) { var html = response.responseText; var titleMatch = html.match(/<title>(.*?)<\/title>/i); if (titleMatch && titleMatch.length > 1) { titleElement.textContent += " - " + titleMatch[1]; } } }); } })();