您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
override missav js
当前为
// ==UserScript== // @name override-missav-js // @namespace https://missav.com // @version v0.0.5 // @description override missav js // @author You // @match https://missav.com // @match https://missav.com/search/* // @match https://missav.com/*/search/* // @match https://missav.com/dm240/chinese-subtitle // @match https://missav.com/dm240/*/chinese-subtitle // @match https://missav.com/dm251/chinese-subtitle // @match https://missav.com/dm251/*/chinese-subtitle // @icon https://www.google.com/s2/favicons?sz=64&domain=missav.com // @grant none // ==/UserScript== const onMouseEnter = () => { // 获取页面中所有拥有 .thumbnail 类的元素 const thumbnails = document.querySelectorAll(".thumbnail"); // 遍历所有的 .thumbnail 元素 thumbnails.forEach(function (thumbnail) { // 在每个 .thumbnail 元素下找到符合条件的 a 元素 const link = thumbnail.querySelector("div:first-child > a:last-child"); if (link == null) { return; } // 检查 link 是否已经有监听器或者已经被触发过点击 if (!link.hasAttribute("data-click-triggered")) { // 创建一个监听函数,它可以被解除绑定 function hoverTriggerClick(event) { // 触发点击事件 link.click(); // 在触发点击后解除 mouseenter 事件监听 link.removeEventListener("mouseenter", hoverTriggerClick); } // 标记 link 已添加事件监听器 link.setAttribute("data-click-triggered", "true"); // 为该 a 元素添加鼠标悬停的事件监听器 link.addEventListener("mouseenter", hoverTriggerClick); } }); }; const onVideo = () => { // 获取页面中所有拥有 .thumbnail 类的元素 const thumbnails = document.querySelectorAll( ".thumbnail > div:first-child > a:first-child" ); // 遍历所有的 .thumbnail 元素 thumbnails.forEach(function (thumbnail) { // 在每个 .thumbnail 元素下找到符合条件的 a 元素 const video = thumbnail.querySelector( "div:first-child > a:first-child > video" ); if (video == null || video.getAttribute("play") === "true") { return; } // const id = video.id.replace("preview-", ""); // console.log(id, video.dataset.src); // video.src = video.dataset.src.replace("undefined", id); // console.log(video.id, video.dataset.src); if (video.dataset.src.indexOf("undefined") > -1) { return; } video.setAttribute("play", "true"); video.src = video.dataset.src; video.play(); video.className = "preview"; }); }; (function () { "use strict"; setTimeout(() => { onVideo(); }, 2000); // onMouseEnter(); const observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if (mutation.addedNodes.length > 0) { // onMouseEnter(); onVideo(); } }); }); observer.observe(document.body, { attributes: false, childList: true, subtree: true, }); })();