您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Force TMDB to load unloaded images
当前为
- // ==UserScript==
- // @name TMDB load unloaded images
- // @namespace https://github.com/Tetrax-10
- // @description Force TMDB to load unloaded images
- // @icon https://www.google.com/s2/favicons?sz=64&domain=themoviedb.org
- // @license MIT
- // @version 1.0
- // @match *://*.themoviedb.org/*
- // @run-at document-idle
- // ==/UserScript==
- ;(() => {
- function changeSrc(img) {
- if (
- img.src.includes("media.themoviedb.org") &&
- [".jpg", ".png"].some((e) => img.src.endsWith(e)) &&
- !img.naturalHeight &&
- img.hasAttribute("srcset")
- ) {
- // Get the resolution and id of the image
- const resolution = img.src.match(/\/t\/p\/([^\/]+)\/[^\/]+$/)?.[1] ?? ""
- const id = img.src.split("/").pop()
- img.src = `https://image.tmdb.org/t/p/${resolution}/${id}`
- img.removeAttribute("srcset")
- }
- }
- // Function to handle intersection events
- function handleIntersection(entries, observer) {
- entries.forEach((entry) => {
- if (entry.isIntersecting) {
- // Check if the element is visible in the viewport
- const imgElement = entry.target
- changeSrc(imgElement) // Change the image source if it's unloaded
- observer.unobserve(imgElement) // Stop observing the current image after it's logged
- }
- })
- }
- // Create a new IntersectionObserver instance
- const observer = new IntersectionObserver(handleIntersection, {
- root: null, // Observe the viewport
- rootMargin: "0px", // No margin around the viewport
- threshold: 0.1, // Trigger when at least 10% of the image is visible
- })
- // Select all img elements and observe them
- document.querySelectorAll("img").forEach((img) => {
- observer.observe(img)
- })
- })()