NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Google Scholar Save All // @namespace https://github.com/asmpro7 // @version 1.0 // @description Adds a Save All button to save all articles on the page in Google Scholar // @author Ahmed ElSaeed // @icon https://scholar.google.com/favicon.ico // @match https://scholar.google.com/scholar* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Function to simulate a click function simulateClick(element) { if (element) { element.click(); } } // Add the "Save All" button function addSaveAllButton() { const gsAbMdDiv = document.getElementById('gs_ab_md'); if (gsAbMdDiv) { const saveAllButton = document.createElement('button'); saveAllButton.textContent = 'Save All'; saveAllButton.style.backgroundColor = 'blue'; saveAllButton.style.color = 'white'; saveAllButton.style.padding = '10px'; saveAllButton.style.border = 'none'; saveAllButton.style.cursor = 'pointer'; saveAllButton.style.marginLeft = '10px'; saveAllButton.addEventListener('click', function() { // Get all "Save" buttons on the page const saveButtons = document.querySelectorAll('span.gs_or_btn_lbl'); saveButtons.forEach((btn, index) => { // Simulate a click on each Save button setTimeout(() => { simulateClick(btn); // After a click, wait for popups and then dismiss them setTimeout(() => { const popup = document.querySelector('.gs_or_sav'); if (popup) { simulateClick(document.body); // Click outside to close the popup } }, 500); }, 500 * index); // Delay between each click to ensure the popup appears and is closed }); // Change the button's background color to green once done saveAllButton.style.backgroundColor = 'green'; }); gsAbMdDiv.appendChild(saveAllButton); } } // Wait for the page to load, then add the button window.addEventListener('load', addSaveAllButton); })();