首页 > 编程语言 >呼伦贝尔市专业技术人员继续教育刷课脚本-JavaScript编写

呼伦贝尔市专业技术人员继续教育刷课脚本-JavaScript编写

时间:2024-09-01 22:03:53浏览次数:4  
标签:视频 getElementsByClassName getElementsByTagName JavaScript current var 呼伦贝尔市 刷课 d

脚本

学习网站:呼伦贝尔市专业技术人员继续教育在线学习平台-地区列表 hlbe.chinahrt.cn/area.asp?platid=17
脚本地址:呼伦贝尔市专业技术人员继续教育在线学习平台-刷课脚本

教程

1.插件安装(以Microsoft Edge浏览器为例)

image

打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以

image

image

点击屏幕右上角三个点,图示位置,然后点击扩展

image
点击获取扩展

image

搜索Tampermonkey,并点击获取那个绿色的小猴子(篡改猴 - Microsoft Edge Addons

image

到这里,你的油猴就已经装好啦!同时你可以看见你的浏览器上面多了个黑色图标。


那么接下来教大家安装脚本。

在这个浏览器上打开呼伦贝尔市专业技术人员继续教育在线学习平台-刷课脚本,进入后点击安装脚本,安装完成刷新你学习网页就可以愉快使用了。

更多

关键代码分享:


(function() {
    'use strict';
	
	// 获取当前页面的URL
	var href = location.href;

	// 定义一个函数来处理视频播放逻辑
	function handleVideoPlayback() {
		var videoList; // 存储视频列表的变量
		var currentVideo; // 当前播放的视频节点

		// 检查URL中是否包含特定的视频播放路径
		if (href.indexOf("home/learning/play/id/") !== -1) {
			// 获取视频列表元素
			videoList = document.getElementsByClassName("mulu")[0];

			// 遍历视频列表,找到当前播放的视频
			for (var i = 0; i < videoList.getElementsByTagName("li").length; i++) {
				var listItem = videoList.getElementsByTagName("li")[i];
				// 检查列表项中是否包含特定的颜色代码,标识当前播放的视频
				if (listItem.innerHTML.indexOf("029AFF") !== -1) {
					currentVideo = listItem;
					break;
				}
			}

			// 如果找到了当前视频,检查是否播放结束
			if (currentVideo && checkPlaybackEnded(currentVideo)) {
				// 播放下一节视频
				playNextVideo(videoList, currentVideo);
			}
		}
	}

	// 检查视频是否播放结束
	function checkPlaybackEnded(videoNode) {
		var rateElement = videoNode.getElementsByClassName("rate")[0];
		return rateElement.innerText.indexOf("100") !== -1;
	}

	// 播放下一个视频
	function playNextVideo(videoList, currentVideo) {
		var nextVideoLink = videoList.getElementsByTagName("li")[currentVideoIndex + 1].getElementsByTagName("a")[0];
		if (nextVideoLink) {
			nextVideoLink.click();
		} else {
			console.error("No next video available.");
		}
	}

	// 启动视频播放处理
	handleVideoPlayback();
	
	
    var i
    var href = location.href
    if(href.indexOf("sectionid=")!=-1){
        //获取当前课件
        var current = document.getElementsByClassName("act")[0].innerText
        //是文本的话直接跳到下一个课件
        if(current.indexOf("文本")!=-1){
            for(i = 0; i < document.getElementsByTagName("li").length; i++){
                if(document.getElementsByTagName("li")[i].className == "act"){
                    document.getElementsByTagName("li")[i+1].click()
                    break;
                }
            }
        }

        //是视频的话就播放
        if(current.indexOf("视频")!=-1){
            var video = document.getElementsByTagName("video")[0]
            video.click()
            //播放完成后自动下一课件
            setInterval(function(){
                if(video.ended){
                    for(var i = 0; i < document.getElementsByTagName("li").length; i++){
                        if(document.getElementsByTagName("li")[i].className == "act"){
                            document.getElementsByTagName("li")[i+1].click()
                            break;
                        }
                    }
                }
            },5000)
        }
    }
	
	setInterval(function(){
        var frame = document.getElementsByTagName("iframe")[0].contentWindow.document
        var end_state = frame.getElementById("lessonStatus").value
        if(end_state == "completed"){
            var lists = document.getElementsByTagName("td")
            var current
            for(var i = 0; i < lists.length; i++){
                if(lists[i].className=="couBg"){
                    current = i
                }
            }
            lists[current+1].getElementsByTagName("a")[0].click()
        }
    },2000)
	
	    if(href.indexOf("Learning/Index/") != -1){
        //根据进度判断是否需要进入课程页面
        for (i = 0; i < document.getElementsByClassName("td004").length; i++){
            if(document.getElementsByClassName("td004")[i].innerText!="100%"){
                document.getElementsByClassName("td005")[i].getElementsByTagName("a")[0].click()
            }
        }
    }

    if(href.indexOf("Learning/OnLineListen") != -1){
        //根据已学时长和总时长来判断是否需要听课
        for(i = 0; i < document.getElementsByClassName("td00a").length; i++){
            var total_time = makeDurationToSeconds(document.getElementsByClassName("td00a")[i].getElementsByClassName("td003")[1].innerText)
            var learned_time = makeDurationToSeconds(document.getElementsByClassName("td00a")[i].getElementsByClassName("td003")[2].innerText)
            console.log(total_time,learned_time)
            if(learned_time < total_time){
                document.getElementsByClassName("td00a")[i].getElementsByClassName("td008")[0].getElementsByTagName("a")[0].click()
                break;
            }
        }
    }

    //将格式化时间转换秒
    function makeDurationToSeconds(time){
        var str = time;
        var arr = str.split(':');
        var hs = parseInt(arr[0]*3600);
        var ms = parseInt(arr[1]*60);
        var ss = parseInt(arr[2]);
        var seconds = hs + ms + ss;
        return seconds;
    }
	
	
	window.setTimeout(function () {
        var s = GM_getValue("string")
        //console.log(s)
        //console.log(typeof(s))

        lists = s.split('-')
        console.log(lists)
        setInterval(function () {

            //判断是否需要 跳转到下一节
            var current_course
            var current_medId
            if (learnMediaTime >= mediaTime) {
                // current_course = lists.shift()
                // current_medId = current_course.split("&medId=")[1]
                // while (current_course.indexOf("medId") == -1 || current_medId <= window.location.href.split("&medId=")[1]) {
                //     current_course = lists.shift()
                //     current_medId = current_course.split("&medId=")[1]
                // }
                var now_id = window.location.href.split("&medId=")[1]
                var index
                for (var i = 0; i < lists.length; i++) {
                    if (lists[i].indexOf("medId=" + now_id) != -1) {
                        //确保下一节是课程,而不是章节链接
                        if (lists[i + 1].indexOf("medId=") != -1) {
                            window.location.href = "http://xy.59iedu.com" + lists[i+1];
                        } else {
                            window.location.href = "http://xy.59iedu.com" + lists[i+3];
                        }
                    }
                }
            }
        }, 2000)
    }, 4000);
})();

标签:视频,getElementsByClassName,getElementsByTagName,JavaScript,current,var,呼伦贝尔市,刷课,d
From: https://www.cnblogs.com/tuziang/p/18391811

相关文章

  • 丽水人社公需科目刷课脚本-JavaScript编写
    脚本学习网站:rlzy.lshrss.cn/Service/Index脚本地址:丽水市专业技术人员继续教育公需科目-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tamperm......
  • 德州市专业技术人员继续教育刷课脚本-JavaScript编写
    脚本学习网站:德州市专业技术人员继续教育服务平台:sddz.yxlearning.com脚本地址:德州市专业技术人员继续教育服务平台-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展......
  • 威海市专业技术人员继续教育刷课脚本-JavaScript编写
    脚本学习网站:sdwh.yxlearning.com,rsjwhjxjy.weihai.cn脚本地址:威海市专业技术人员继续教育-刷课脚本教程1.插件安装(以MicrosoftEdge浏览器为例)打开最中间那个蓝色绿色的浏览器,谷歌之类的浏览器也可以点击屏幕右上角三个点,图示位置,然后点击扩展点击获取扩展搜索Tamp......
  • 【JavaScript】LeetCode:6-10
    文章目录6轮转数组7买卖股票的最佳时机Ⅰ8买卖股票的最佳时机Ⅱ9两数之和10字母异位词分组6轮转数组数组题目要求最终结果返回nums。方法1:拼接数组,n=nums.concat(nums);。方法2:数组直接截取,这里提供方法2的代码。/***@param{number[]}nums*@param......
  • ecmascript和javascript的区别
    1.简介1.1.概述1.1.1.ecmascriptECMAScript(简称ES)是JavaScript编程语言的一个标准化版本。它是为网络开发设计的一种轻量级的脚本语言,主要用于在网页上实现交互性和动态效果。ECMAScript是该语言的标准名称,而JavaScript是其最知名和广泛使用的实现。1.1.2.javascrip......
  • 【量化分析】Python、JavaScript(Node.js)、Java、C#和Ruby五种主流语言的实例代码给大
    最近一两年,股票量化分析越来越受欢迎了。想要入行,首先得搞定股票数据。毕竟,所有量化分析都是建立在数据之上的,实时交易、历史交易、财务、基本面,这些数据咱们都得有。咱们的目标就是挖掘这些数据中的价值,来指导咱们的投资策略。​为了找数据,我可是尝试了各种方法,自己动手......
  • JavaScript程序结构
    程序结构有三种:选择结构、循环结构 、顺序结构一、选择结构1、简介根据条件进行判断,从而执行不同的操作,称为选择结构(分支结构),其实就是条件判断选择结构的类型:if、switch2、if结构分为:单分支结构、二分支结构、多分支结构、嵌套if结构 语法:if(条件1){代码块1}e......
  • JavaScript中的`event.preventDefault()`和`event.stopPropagation()`有什么区别?
    在JavaScript中,event.preventDefault()和event.stopPropagation()是两个常用于事件处理的重要方法,它们各自扮演着不同的角色,在控制Web页面交互行为时发挥着关键作用。下面将详细阐述这两个方法的区别,包括它们的作用、使用场景以及影响。一、event.preventDefault()1.定义与......
  • JavaScript中数组;JavaScript中对象及方法;笔记分享;知识回顾
    一,JS中数组数组创建4种语法:<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><script>/*第一种......
  • JavaScript中DOW和BOW;笔记分享;知识回顾
    一,BOW1什么是BOWBOM是BrowserObjectModel的简写,即浏览器对象模型。BOM有一系列对象组成,是访问、控制、修改浏览器的属性的方法BOM没有统一的标准(每种客户端都可以自定标准)。BOM的顶层是window对象2,window对象及常用方法(1),什么是window对象Window对象描述:    ......