您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
override missav css/js
当前为
// ==UserScript== // @name override-missav-css/js // @namespace https://missav.com // @version v0.0.2 // @description override missav css/js // @author You // @match https://missav.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=missav.com // @grant none // ==/UserScript== // 注入 css const injectCss = () => { const css = ` /* 你的全局CSS */ .truncate { overflow: auto; text-overflow: auto; white-space: inherit; } `; const style = document.createElement("style"); style.type = "text/css"; style.appendChild(document.createTextNode(css)); document.head.appendChild(style); }; 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) { return; } video.className = "preview"; // const id = video.id.replace("preview-", ""); // console.log(id, video.dataset.src); // video.src = video.dataset.src.replace("undefined", id); video.src = video.dataset.src; video.play(); }); }; (function () { "use strict"; injectCss(); 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, }); })();