Greasy Fork

Greasy Fork is available in English.

Return Pagination to Google

Makes Google searches break down into separate pages, rather than displaying as one continuous page. (Quick & Dirty)

目前为 2023-06-10 提交的版本。查看 最新版本

// ==UserScript==
// @name        Return Pagination to Google
// @description Makes Google searches break down into separate pages, rather than displaying as one continuous page. (Quick & Dirty)
// @namespace   Violentmonkey Scripts
// @match       https://www.google.com/search
// @grant       none
// @version     1.0
// @author      Jupiter Liar
// @license     Attribution CC BY
// @description 6/10/2023, 6:48 AM
// ==/UserScript==


// Check if the page has the required conditions
if (document.getElementById('botstuff') && !document.querySelector('table.AaVjTc')) {
  // Create the table element
  var table = document.createElement('table');
  table.className = 'AaVjTc';
  table.style.margin = 'auto';
  table.style.marginBottom = '32px';

  // Create a variable to store the page number
  var pageNumber;

  // Extract the page number from the URL
  var startParam = "&start=";
  var startIndex = window.location.href.indexOf(startParam);

  if (startIndex === -1) {
    pageNumber = 1;
  } else {
    var startValue = parseInt(window.location.href.substring(startIndex + startParam.length));
    pageNumber = Math.floor(startValue / 10) + 1;
  }

  // Create the table columns
  for (var i = 0; i < 11; i++) {
    var column = document.createElement('td');
    column.style.textAlign = 'center';
    column.style.verticalAlign = 'baseline';
    column.style.minWidth = '20px';
    column.style.fontSize = '16pt';

    // Add padding to middle columns
    if (i > 0 && i < 10) {
      column.style.padding = '0 8pt';
    }

    // Add padding to previous and next columns
    if (i === 0 || i === 10) {
      column.style.padding = '0 24pt';
    }

    // Add content to the columns
    if (i === 0) {
      if (pageNumber !== 1) {
        var previousLink = document.createElement('a');
        previousLink.href = window.location.href.replace(startParam + startValue, startParam + (startValue - 10));
        previousLink.innerText = '< Previous';
        column.appendChild(previousLink);
      }
    } else if (i === 10) {
      var nextLink = document.createElement('a');
      nextLink.href = window.location.href.replace(startParam + startValue, startParam + (startValue + 10));
      nextLink.innerText = 'Next >';
      column.appendChild(nextLink);
    } else {
      // Calculate the page number for the column
      var columnNumber;
      if (pageNumber < 5) {
        columnNumber = i;
      } else if (pageNumber >= 5) {
        columnNumber = pageNumber - 5 + i;
      }

      if (columnNumber === pageNumber) {
        // Add page number without link
        column.innerText = columnNumber;
      } else {
        // Add page number with link
        var newStartValue = (columnNumber - 1) * 10;
        if (newStartValue === 0) {
          newStartValue = "0";
        }
        if (startIndex === -1) {
          column.innerHTML = `<a href="${window.location.href + startParam + newStartValue}">${columnNumber}</a>`;
        } else {
          column.innerHTML = `<a href="${window.location.href.replace(startParam + startValue, startParam + newStartValue)}">${columnNumber}</a>`;
        }
      }
    }

    // Append the column to the table
    table.appendChild(column);
  }

  // Append the table to the 'botstuff' div
  var botstuffDiv = document.getElementById('botstuff');
  botstuffDiv.appendChild(table);
}