DaXue's Notebook

  • 学习
    • 编程
    • 数学
  • 生活
    • 随笔
  • 关于
    • 关于
    • 隐私政策
  • 留言板
  • 服务监控
  • 友情链接
风帆
大雪无寒的随行笔记
  1. 首页
  2. 学习
  3. 正文

学习通快速导出作业脚本

2022年12月12日 5607点热度 1人点赞 2条评论

恰逢期末,于是随手捣鼓了一个用于快速导出章节内或额外布置作业的js脚本,方便复(zuo)习(bi)。

功能:快速导出作业为pdf,同时避免缩放导致的样式变形。

效果如图:

代码:

// ==UserScript==
// @name         自动打开作业
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       DaXue
// @match        https://*.chaoxing.com/mycourse/*
// @match        https://*.chaoxing.com/work/*
// @match        https://*.chaoxing.com/mooc2/work/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=chaoxing.com
// @grant        none
// ==/UserScript==
/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
var addCss=['<link rel=\"stylesheet\" type=\"text/css\" href=\"https://mooc1.chaoxing.com/space/new/moocIndex/css/nav.css\"><link rel="stylesheet" type="text/css" href="https://mooc1.chaoxing.com/space/new/moocIndex/css/ZuoYe.css">','<link rel="stylesheet" type="text/css" href="https://mooc1.chaoxing.com/mooc2/css/viewStudent.css?v=2022-0905-1000"><link rel="stylesheet" type="text/css" href="https://mooc1.chaoxing.com/mooc2/css/common.css?v=2022-1021-1500">'];
var className=['ZyBottom','padTop60'];
function printDocument(obj,a){
    var url='_blank'
    var newWindow=window.open("打印窗口",url);
    var docStr =obj.innerHTML+addCss[a];
    // //传入题目,并引用样式表
    newWindow.document.write(docStr);//写入页面内容
    newWindow.document.close();
    setTimeout(() => {        //等待0.5s进行页面渲染,然后调用打印服务
        newWindow.print();
        newWindow.close(); //关闭新窗口
            }, 500);
}

function isWorkNewVersion(){//判断用户所处界面为新版还是旧版
    var url=window.location.href
    if(url.indexOf('work/selectWorkQuestionYiPiYue')>0){
        return 0;       //旧版作业
    }else if (url.indexOf('&mooc2=1&openc')>0){
        return 2;       //新版章节内作业
    }else if (url.indexOf('mooc2/work/view?courseId')>0) {
        return 1;       //新版作业
    } else {
        return 2;       //旧版章节内作业
    }
}

function printWork(){
    var a=isWorkNewVersion();     //调用函数,判断当前页面类型
    var x =document.getElementsByClassName(className[a]);   //获取页面内容
    switch (a) {
        case 0:
            printDocument(x[0],a);
            break;
        case 1:
            printDocument(x[0],a);
            break;
        case 2:
            x=document.getElementById("frame_content").contentWindow.document.getElementsByClassName('ZyBottom')        //获取iframe内元素
            printDocument(x[0],a);
            break;
        // case 3:
        //     printDocument(x[0]);
        //     break;
        default:
            break;
    }
}

$(document).keydown(function(event){
    if(event.keyCode == 80){
        printWork();
    }
})
食用方法:在章节的作业页面或者老师布置的作业页面摁下p即可使用。兼容新老版本界面(推荐使用新版界面避免意外情况)
标签: Javascript 学习通 超星
最后更新:2022年12月12日

大雪无寒

菜就多练

点赞
< 上一篇

文章评论

  • ccbbp

    博客头图很漂亮

    2023年12月10日
    回复
    • 大雪无寒

      @ccbbp 谢谢~

      2023年12月14日
      回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    回复 ccbbp 取消回复

    最新 热点 随机
    最新 热点 随机
    如果的尽头 学习通快速导出作业脚本 中期总结 灯下随笔(二) 学习通视频任务自动化完成程序 灯下随笔(一)
    如果的尽头
    Autodesk教育账户认证指南 一些吐槽 如果的尽头 学习通快速导出作业脚本 灯下随笔(一) 灯下随笔(二)

    COPYRIGHT © 2024 DaXue's Notebook. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    湘ICP备2020022268号