您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Preview images and videos on hover with delay.
// ==UserScript== // @name Image & Video Hover Preview // @namespace http://tampermonkey.net/ // @version 1.1 // @description Preview images and videos on hover with delay. // @author You // @match *://*/* // @grant GM_xmlhttpRequest // @grant GM_addStyle // @license MIT // ==/UserScript== (function() { 'use strict'; console.log('test 222'); const style = document.createElement("style"); style.innerHTML = ` #hover-preview { position: fixed; top: 0px; right: 0px; width: 600px; max-height: 100vh; overflow-y: auto; background: rgba(0, 0, 0, 0.8); padding: 10px; border-radius: 5px; z-index: 9999; display: none; } #hover-preview img, #hover-preview video { max-width: 100%; display: block; margin-bottom: 10px; } `; document.head.appendChild(style); const previewBox = document.createElement("div"); previewBox.id = "hover-preview"; document.body.appendChild(previewBox); let hoverTimeout; async function fetchPageContent(url) { try { const response = await fetch(url); if (!response.ok) throw new Error("Network response was not ok"); return await response.text(); } catch (error) { console.error("Fetch error:", error); return ""; } } const links = document.querySelectorAll('a.image-hover'); console.log('links', links); links.forEach(link => { link.addEventListener("mouseenter", (event) => { console.log('link', link); if (!link) return; hoverTimeout = setTimeout(async () => { const url = link.href; previewBox.innerHTML = "Loading..."; previewBox.style.display = "block"; const pageContent = await fetchPageContent(url); if (!pageContent) { previewBox.innerHTML = "Failed to load content"; return; } previewBox.innerHTML = ""; const tempDiv = document.createElement("div"); tempDiv.innerHTML = pageContent; // Extract videos tempDiv.querySelectorAll(".item-link:not(.fancybox-trigger)").forEach((videoSrc, index) => { console.log('video', videoSrc); const video = document.createElement("video"); if (videoSrc.href.includes('javascript')) { video.src = videoSrc.getAttribute('data-trigger-href'); } else { video.src = videoSrc.href; } video.controls = true; video.autoPlay = true; video.style.width = '100%'; previewBox.appendChild(video); if (index ===0) { video.play(); } else { video.addEventListener('mouseenter', () => { video.play(); }) } }); // Extract images tempDiv.querySelectorAll("a.image-hover").forEach(imgLink => { console.log('jg-entry', imgLink); const imgSrc = imgLink.href; if (imgSrc.match(/(jpg|jpeg|png|gif|webp)$/)) { const img = document.createElement("img"); img.src = imgSrc; previewBox.appendChild(img); } }); }, 300); // 300ms delay before loading content }); link.addEventListener("mouseout", (event) => { if (!link) return; clearTimeout(hoverTimeout); //previewBox.style.display = "none"; }); }); // call number setTimeout(() => { const isProfilePage = document.querySelectorAll('#profile-content').length > 0; console.log('is profile page', isProfilePage); if (!isProfilePage) { return; } const button = document.querySelector('button[data-target="#modal-ajax"]'); console.log('call button', button); button.addEventListener('click', function() { console.log('Button clicked!'); }); }, 2000); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址