easy clicks for zoltars
当前为
// ==UserScript==
// @name Project Endor (Zoltar)
// @namespace https://gf.qytechs.cn/en/users/12709
// @version 1.1.0
// @description easy clicks for zoltars
// @author feihtality
// @match https://www.google.com/evaluation/endor/*
// @grant none
// ==/UserScript==
/*jshint esnext:true*/
(function() {
'use strict';
function make(tag) { return document.createElement(tag); }
function get() { return (arguments.length > 1 ? arguments[0] : document).querySelector(arguments[1] || arguments[0]); }
function getAll() { return (arguments.length > 1 ? arguments[0] : document).querySelectorAll(arguments[1] || arguments[0]); }
var _p = document.querySelector('p');
if (!/previewand/.test(document.referrer) && _p && /An error occurred/.test(_p.textContent)) document.location.reload(); // autorefresh loading error
if (!get('h3').textContent.includes('website is NOT available')) return; // not a zoltar
var css = document.head.appendChild(document.createElement('STYLE'));
css.innerHTML = '.zoltarpanel p {margin:5px; background:lightblue; padding:2px 5px;}' +
'.zoltarpanel {z-index:10; position:fixed; top:10%;right:50%; background:aliceblue; opacity:0.9; transform:translateX(50%);}' +
'.zoltarpanel p button {font-size: 12px; margin-right:2px; padding:1px;}';
function sel(obj) {
obj.btn.onclick = () => {
var prev = obj.p.querySelector('[style]');
if (prev && !obj.isCheckbox) prev.style.background = '';
if (obj.isCheckbox) obj.btn.style.background = obj.btn.style.background === 'lightgreen' ? '' : 'lightgreen';
else obj.btn.style.background = 'lightgreen';
obj.target.click();
scroller(obj.target);
};
}
function scroller(loc, dt) {
var getPos = function(el) { var offset = 0; while(el) { offset += el.offsetTop; el = el.offsetParent; } return offset; },
target = getPos(loc)-window.innerHeight/4,
pos = window.scrollY,
dpos = Math.ceil((target-pos)/3);
dt = dt ? dt-1 : 25;
if (target === pos || dpos === 0 || dt === 0) return;
window.scrollBy(0,dpos);
setTimeout( () => scroller(loc, dt), dt);
}
var zoltar = {
sections: Array.prototype.slice.call(getAll('div[ng-show][flex]'), 1), // slice out initial div (business name)
master: document.body.appendChild(make('DIV')),
};
zoltar.master.className = 'zoltarpanel';
for (var section of zoltar.sections) {
var options = Array.from(getAll(section, '[aria-label]')),
isCheckbox = options[0].tagName.toLowerCase().includes('checkbox'),
p = zoltar.master.appendChild(make('P'));
for (var option of options) {
var btn = p.appendChild(make('BUTTON'));
btn.textContent = option.getAttribute('aria-label');
sel({ p: p, btn: btn, target: option, isCheckbox: isCheckbox });
}
}
var submit = zoltar.master.appendChild(make('P')).appendChild(make('BUTTON'));
submit.textContent = 'SUBMIT';
submit.onclick = () => get('input[type=submit]').click();
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址