您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Clips all the coupons (09/2023) Safeway Just For U
// ==UserScript== // @name Just For U Coupon Clipper // @version 1 // @grant none // @include https://www.safeway.com/foru/coupons-deals.html* // @description Clips all the coupons (09/2023) Safeway Just For U // @namespace https://greasyfork.org/users/803889 // @license MIT // ==/UserScript== /// While the load more button exists, load more function loadUntilDone() { let buttons = document.getElementsByClassName('load-more') if (buttons.length > 0) { // Still a load more button. Click until it goes away console.log("Loading more coupons...") try { buttons[0].click() } catch (e) { console.error(e) } // Give it some time to load. setTimeout(loadUntilDone, 1000) } else { // Now find and click all the coupons console.log("Clicking all coupons...") clickAllUnclicked(document.querySelectorAll('.grid-coupon-btn')) } } /// Resolve after the given delay async function sleep(delay) { return new Promise((resolve, reject) => { setTimeout(resolve, delay) }) } /// Click on every element in the given collection, at a sensible pace, unless alredy clicked async function clickAllUnclicked(elems) { let i = elems.length for (i > 0; i--;) { let elem = elems[i]; if (!elem.classList.contains('.grid-coupon-btn')) { console.log("Click coupon " + i + ": " + elem) elem.click() await sleep(100) } } console.log("All coupons clicked!") } // Wait for the page to load and then start collecting coupons console.log("Waiting to load coupons") setTimeout(loadUntilDone, 4000)