您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Lazy load two subsequent pages on Tavriav's catalog pages with 1-second delay, display current page number, and show distance from the bottom
// ==UserScript== // @name Tavriav Lazy Load Scroll Catalog // @namespace http://tampermonkey.net/ // @version 1.3 // @description Lazy load two subsequent pages on Tavriav's catalog pages with 1-second delay, display current page number, and show distance from the bottom // @author You // @match https://www.tavriav.ua/catalog/*/ // @match https://www.tavriav.ua/catalog/*/?* // @match https://www.tavriav.ua/subcatalog/* // @grant GM_addStyle // @license MIT // ==/UserScript== (function() { 'use strict'; const urlParams = new URLSearchParams(window.location.search); let currentPage = urlParams.has('page') ? parseInt(urlParams.get('page'), 10) : 1; const distanceFromBottom = 4000; let loading = false; let pagesToLoad = 3; // Create and style the display divs GM_addStyle(` #displayDiv { position: fixed; top: 10px; left: 10px; background: rgba(0,0,0,0.7); color: #fff; padding: 5px 10px; border-radius: 5px; font-size: 14px; z-index: 1000; } `); const pageNumberDisplay = document.createElement('div'); pageNumberDisplay.id = "displayDiv"; document.body.appendChild(pageNumberDisplay); window.addEventListener('scroll', () => { const distance = document.body.offsetHeight - (window.innerHeight + window.scrollY); pageNumberDisplay.innerHTML = `Page: ${currentPage}<br>Distance from bottom: ${Math.round(distance)}px`; if (!loading && distance <= distanceFromBottom) { currentPage++; loadMultiplePages(currentPage, pagesToLoad); } }); function appendContent(text) { const parser = new DOMParser(); const doc = parser.parseFromString(text, 'text/html'); const newContent = doc.querySelector('.catalog-products__container'); if (newContent) { document.querySelector('.catalog-products__container').appendChild(newContent); } } function fetchPage(pageNum) { const currentURL = new URL(window.location.href); const params = currentURL.searchParams; params.set('page', pageNum); return fetch(`${currentURL.origin}${currentURL.pathname}?${params.toString()}`) .then(response => response.text()); } function loadMultiplePages(startPage, count) { if (count === 0) { loading = false; return; } loading = true; fetchPage(startPage).then(text => { appendContent(text); setTimeout(() => { loadMultiplePages(startPage + 1, count - 1); }, 1000); // 1-second delay before fetching the next page }); } loadMultiplePages(currentPage + 1, pagesToLoad); // Start fetching the next two pages immediately })();