在中国科学院大学评教系统中自动选中“非常符合/非常满意”,并将文本框最小字数改为1个字。
// ==UserScript==
// @name UCAS auto evaluate
// @namespace https://github.com/sun-jiao
// @version 3.5
// @description 在中国科学院大学评教系统中自动选中“非常符合/非常满意”,并将文本框最小字数改为1个字。
// @author Sun Jiao
// @match *://xkcts.ucas.ac.cn:8443/evaluate/eva*
// @grant none
// @license description: CC BY-SA 4.0; code: GPL.
// ==/UserScript==
(function(){
'use strict';
function choose(name){
var radio;
radio = document.getElementsByName(name);
if(radio.length > 0){
radio[0].checked = 1;
}
};
function setlength(name){
var text;
text = document.getElementsByName(name);
if(text.length > 0){
text[0].setAttribute("minlength","1");
}
};
function autofill(name, string){
var text;
text = document.getElementsByName(name);
if(text.length > 0){
text[0].value = string;
}
};
var i;
for (i = 1346; i <= 1417; i++) {
choose("item_" + i.toString());
}
choose("radio_1360")
var multi = document.getElementsByName("item_1366");
if(multi.length > 0){
multi[0].checked = 0;
multi[1].checked = 1;
multi[4].checked = 1;
multi[5].checked = 1;
}
var strings = [".",
".",
".",
".",
".",
".",
".", ]
for (i = 0; i <= 4; i++) {
var st = "item_" + (i+1355).toString()
setlength(st)
autofill(st, strings[i]);
}
for(i=0;i <= 1;i ++)
{
st = "item_" + (i+1403).toString()
setlength(st)
autofill(st, strings[i+5])
}
(function() {
'use strict';
// 获取目标容器 .form-actions
const formActionsDiv = document.querySelector('.form-actions');
let newDiv = formActionsDiv
if (!formActionsDiv) {
console.error('无法找到 .form-actions 元素');
newDiv = document.createElement('div');
// 获取 .mc-body 元素
let mcBodyDiv = document.querySelector('.mc-body');
if (mcBodyDiv) {
console.log("dawda")
// 获取 .mc-body 下一级的所有子元素
let childElements = mcBodyDiv.children;
// 遍历所有子元素
Array.from(childElements).forEach((child) => {
// 排除 <div class="head">、<p> 和 <form id="regfrm">
if (!(child.classList && child.classList.contains('head')) &&
!(child.tagName === 'P') &&
!(child.id === 'regfrm')) {
// 将符合条件的元素添加到新 div 中
newDiv.appendChild(child);
}
});
}
}
// 创建新的 div 元素
// newDiv.id = 'newDivContainer'; // 为新 div 设置 id(可选)
newDiv.style.border = '3px solid #ccc'; // 设置新 div 的样式(可选)
newDiv.style.padding = '10px'; // 设置一些内边距(可选)
newDiv.style.backgroundColor = 'white'; // 设置背景色(可选)
newDiv.style.boxShadow = '0px 4px 6px rgba(0, 0, 0, 0.1)'; // 为新 div 添加阴影效果(可选)
newDiv.style.width = '300px';
newDiv.style.height= '100px';
newDiv.style.margin = '0px';
// 将原有 .form-actions 的所有内容移动到新 div 中
// 设置新 div 的定位样式,将其放置在右上角 300px 的位置
newDiv.style.position = 'fixed'; // 固定定位
newDiv.style.top = '200px'; // 距离页面顶部 300px
newDiv.style.right = '100px'; // 距离页面右边缘 0px
newDiv.style.zIndex = '9999'; // 设置较高的层级,确保在页面的上层
// 添加拖动功能
let offsetX, offsetY, isDragging = false;
// 鼠标按下时开始拖动
newDiv.addEventListener('mousedown', function(event) {
isDragging = true;
offsetX = event.clientX - newDiv.offsetLeft; // 计算鼠标相对 div 的位置
offsetY = event.clientY - newDiv.offsetTop;
// 添加鼠标移动事件来实现拖动
document.addEventListener('mousemove', moveDiv);
// 鼠标松开时停止拖动
document.addEventListener('mouseup', stopDrag);
});
// 移动 div
function moveDiv(event) {
if (isDragging) {
newDiv.style.left = `${event.clientX - offsetX}px`; // 更新 div 的 left 值
newDiv.style.top = `${event.clientY - offsetY}px`; // 更新 div 的 top 值
}
}
// 停止拖动
function stopDrag() {
isDragging = false;
document.removeEventListener('mousemove', moveDiv); // 移除鼠标移动事件
document.removeEventListener('mouseup', stopDrag); // 移除鼠标松开事件
}
document.body.appendChild(newDiv);
let imgElement = document.getElementById('adminValidateImg');
// 将新 div 插入到页面中的合适位置,假设我们将它插入到 body 的末尾
if (imgElement) {
// 监听图片加载完成后放大
imgElement.onload = function() {
imgElement.style.width = (imgElement.width * 3) + 'px';
imgElement.style.height = (imgElement.height * 3) + 'px';
};
// 如果图片已经加载完成,直接修改
if (imgElement.complete) {
imgElement.onload();
}
}
const saveButton = document.getElementById('sb1');
if (!saveButton) {
console.error('没有找到 "保存" 按钮');
return;
}
// 获取 "确定" 按钮
const confirmButtonSelector = '.jbox-button[value="ok"]';
// 点击保存按钮时触发的事件
saveButton.addEventListener('click', function() {
console.log('点击了保存按钮');
// 每隔 1 秒检查一次是否出现 "确定" 按钮
let intervalId = setInterval(function() {
const confirmButton = document.querySelector(confirmButtonSelector);
if (confirmButton) {
console.log('找到了 "确定" 按钮,点击它');
confirmButton.click(); // 点击 "确定" 按钮
clearInterval(intervalId); // 点击后清除定时器
}
}, 500); // 每隔 1 秒检查一次
});
})();
})();