显示清华研究生社会实践志愿情况

在清华研究生社会实践选课中,显示每个项目的志愿情况

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         显示清华研究生社会实践志愿情况
// @namespace    https://dangfan.me
// @description 在清华研究生社会实践选课中,显示每个项目的志愿情况
// @version      0.1
// @author       DANG Fan
// @match        http://zhjw.cic.tsinghua.edu.cn/yjsshsj.yjs.v_xmb_jdb.do?m=yxlb*
// @grant        none
// ==/UserScript==

function addInfo(row) {
    var http = new XMLHttpRequest();
    http.onreadystatechange = function() {
        if (http.readyState == 4 && http.status == 200) {
            var content = http.responseText;
            var start = content.indexOf('第一志愿', content.indexOf('已申请情况'));
            var end = content.indexOf('</td>', start);
            var votes = content.substring(start, end);
            var node = document.createElement('div');
            node.className = 'active-templates-text active-row-cell active-grid-column active-list-item active-column-0 khtml';
            node.innerHTML = votes;
            row.insertBefore(node, row.firstChild);
        }
    }
    http.open("GET", link, true);
    http.send();
}

var rows = document.getElementsByClassName('active-grid-row');
for (var i = 0; i != rows.length; ++i) {
    var row = rows[i];
    var link = row.lastChild.firstChild.href;
    addInfo(row);
}