您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
查看选课系统的班级容量, 修复已选课无法查看详情bug
当前为
// ==UserScript== // @name BuaaGsmisTool // @namespace http://tampermonkey.net/ // @version 0.4 // @description 查看选课系统的班级容量, 修复已选课无法查看详情bug // @author [email protected] // @match http://gsmis.buaa.edu.cn/qdwebpages/index.html* // @match https://gsmis.e.buaa.edu.cn/qdwebpages/index.html* // @grant none // ==/UserScript== (function () { 'use strict'; var css = ".Course-name h3 { z-index: 100;}", head = document.head || document.getElementsByTagName('head')[0], style = document.createElement('style'); style.type = 'text/css'; if (style.styleSheet) { // This is required for IE8 and below. style.styleSheet.cssText = css; } else { style.appendChild(document.createTextNode(css)); } head.appendChild(style); // https://dmitripavlutin.com/catch-the-xmlhttp-request-in-plain-javascript/ var open = window.XMLHttpRequest.prototype.open, send = window.XMLHttpRequest.prototype.send; function openReplacement(method, url, async, user, password) { this._url = url; return open.apply(this, arguments); } function sendReplacement(data) { if (this.onreadystatechange) { this._onreadystatechange = this.onreadystatechange; } this.onreadystatechange = onReadyStateChangeReplacement; return send.apply(this, arguments); } function onReadyStateChangeReplacement() { var resp = this._onreadystatechange.apply(this, arguments); var that = this; setTimeout(function () { if (that.readyState === 4 && that.status === 200 && that._url.startsWith('/api/yuXuanKeApiController.do?findKcxxList')) { var res = JSON.parse(that.responseText); var courses = document.getElementsByClassName('Course-name'); for (var i = 0; i < courses.length; i++) { var info = res['attributes']['kclb'][i]; var curr = courses[i]; var p = curr.getElementsByTagName('p'); for (var k = p.length-1; k >=0; k--) { if (p[k].innerHTML.startsWith('当前已预选人数')) { p[k].innerHTML = '已预选/总:' + info['dqyxrs'] + '/' + info['kxrs']; break; } } } } }, 500); return resp; } window.XMLHttpRequest.prototype.open = openReplacement; window.XMLHttpRequest.prototype.send = sendReplacement; })();