// ==UserScript== // @name 河南工学院校园网自动登录 // @namespace https://www.cnblogs.com/wkkwk // @version 1.2.3 // @description 自动填写并提交校园网登录表单(异步优化版) // @author 哇咔咔哇咔 // @match http://211.69.15.10:6060/portalReceiveAction.do* // @grant none // ==/UserScript== (function() { 'use strict'; // 配置账户信息(需用户自行修改) const ACCOUNT = { username: '你的账号', // 替换为你的账号 password: '你的密码', // 替换为你的密码 operator: '运营商' // 运营商:yidong-移动/liantong-联通/dianxin-电信 }; // 通用延时函数 const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); // 错误处理函数 function handleError(errorMessage) { console.error('自动登录失败:', errorMessage); alert('自动登录失败: ' + errorMessage); } // 主逻辑函数 async function autoLogin() { try { await sleep(1000); // 初始等待 // 填写用户名 const userNameInput = document.getElementById('userName'); if (!userNameInput) throw new Error("用户名输入框未找到"); userNameInput.value = ACCOUNT.username; console.log('用户名已填写'); await sleep(1000); // 填写密码 const passwordInput = document.getElementById('password'); if (!passwordInput) throw new Error("密码输入框未找到"); passwordInput.value = ACCOUNT.password; console.log('密码已填写'); await sleep(1000); // 选择运营商 const operatorButtons = document.querySelectorAll('.loginWay span label i'); let operatorSelected = false; operatorButtons.forEach(button => { if (button.className === ACCOUNT.operator) { button.click(); operatorSelected = true; } }); if (!operatorSelected) throw new Error("运营商选择失败"); console.log('运营商已选择'); await sleep(1000); // 提交登录 const loginBtn = document.querySelector('.loginBtn'); if (!loginBtn) throw new Error("登录按钮未找到"); loginBtn.click(); console.log('已提交登录请求'); } catch (error) { handleError(error.message); } } // 页面加载后启动 window.addEventListener('load', () => { autoLogin(); }); })();