You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
TamperMonkeyScript/scripts/sosovalue_execute.user.js

85 lines
2.5 KiB

// ==UserScript==
// @name sosovalue 半自动点击
// @namespace http://tampermonkey.net/
// @version 1.6
// @description 检测并点击页面中的 5 组按钮,并关闭新弹出的页面
// @author Jack
// @match https://sosovalue.com/*/*
// @grant none
// ==/UserScript==
(function () {
"use strict";
const GroupSelectors = [
"#\\:rf\\: > span.transition-opacity.font-medium",
"#\\:rh\\: > span.transition-opacity.font-medium",
"#\\:ri\\: > span.transition-opacity.font-medium",
"#\\:rj\\: > span.transition-opacity.font-medium",
"#\\:rk\\: > span.transition-opacity.font-medium",
"#\\:rg\\: > span.transition-opacity.font-medium",
];
let newWindow = null;
const originalOpen = window.open;
window.open = function (url, name, features) {
newWindow = originalOpen(url, name, features);
return newWindow;
};
function clickButtonGroup(group, delay, closeWindow = false, callback) {
let completed = 0;
group.forEach((selector, index) => {
setTimeout(() => {
const button = document.querySelector(selector);
if (button) {
button.click();
if (closeWindow && newWindow) {
newWindow.close();
}
}
completed++;
if (completed === group.length && callback) {
callback();
}
}, index * delay);
});
}
function createCustomButtons() {
const button = document.createElement("button");
button.textContent = "执行";
button.style.position = "fixed";
button.style.top = "10%";
button.style.left = "2%";
button.style.transform = "translateY(-50%)";
button.style.padding = "3px 8px";
button.style.fontSize = "10px";
button.style.backgroundColor = "#007baf";
button.style.color = "#fff";
button.style.border = "none";
button.style.borderRadius = "5px";
button.style.cursor = "pointer";
button.style.zIndex = "10000";
button.addEventListener("click", () => {
clickButtonGroup(GroupSelectors, 1000, true, () => {
// 所有按钮点击完成后,等待1秒刷新页面
setTimeout(() => {
location.reload();
}, 1000);
});
});
document.body.appendChild(button);
}
window.addEventListener("load", createCustomButtons);
setInterval(() => {
if (newWindow && !newWindow.closed) {
newWindow.close();
}
}, 1000);
})();