Google Infinite Scroll 2

Enables infinite scroll on Google Search

  1. // ==UserScript==
  2. // @name Google Infinite Scroll 2
  3. // @description Enables infinite scroll on Google Search
  4. // @match *://www.google.com/search*
  5. // @run-at document-end
  6. // @version 0.0.1.20250305073311
  7. // @namespace https://gf.qytechs.cn/users/1435046
  8. // ==/UserScript==
  9.  
  10. let pageNumber = 1;
  11. let isLoading = false;
  12. let hasMore = true;
  13.  
  14. const fetchNextPage = async () => {
  15. const baseUrl = new URL(window.location.href);
  16. baseUrl.searchParams.set('start', pageNumber * 10);
  17. const response = await fetch(baseUrl.toString());
  18. const text = await response.text();
  19. const newDoc = new DOMParser().parseFromString(text, 'text/html');
  20.  
  21. const container = document.createElement('div');
  22. container.id = `page-${pageNumber}`;
  23. container.style.marginTop = '20px';
  24. newDoc.querySelectorAll('#rso > div').forEach(result => container.appendChild(result.cloneNode(true)));
  25.  
  26. const lastAddedPage = document.querySelector(`#page-${pageNumber - 1}`) || document.querySelector('#botstuff');
  27. lastAddedPage.after(container);
  28.  
  29. hasMore = !!newDoc.querySelector('#pnnext');
  30. if (hasMore) pageNumber++;
  31. };
  32.  
  33. window.addEventListener('scroll', async () => {
  34. if (!isLoading && hasMore && window.innerHeight + window.scrollY >= document.documentElement.scrollHeight - 1000) {
  35. isLoading = true;
  36. await fetchNextPage();
  37. isLoading = false;
  38. }
  39. });

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址