您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
安全生产快速学习
当前为
// ==UserScript== // @name aq100 // @namespace https://bjdc.100anquan.com/ // @version 1.0 // @description 安全生产快速学习 // @author Shining // @match https://*.100anquan.com/* // @match http://*.100anquan.com/* // @grant unsafeWindow // @grant GM_log // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // @connect 100anquan.com // @run-at document-end // ==/使用网页自带的@require https://libs.baidu.com/jquery/1.8.3/jquery.min.js // ==/不require引入jquery时 // ==/不引入jquery,$设置的是原网页的jquery,如果设置为document-start时:因为提前注入,无法使用原网页的jquery,会提示找不到$ // ==/unsafeWindow 沙盒模式 // ==/document-end 文件加载后运行插件 // ==/UserScript== var tooberUrl = unsafeWindow.location.href; var $ = unsafeWindow.$; GM_log(tooberUrl); window.onload = function() { if (tooberUrl == "https://bjdc.100anquan.com/" || tooberUrl.indexOf("loginGeneralV2/") != -1) { GM_log("进入首页"); var logFun = unsafeWindow.GetLoginInfo; unsafeWindow.GetLoginInfo = function() { GM_log("登录事件"); //----拦截方法1 //可以logFun.toString() //替换字符串后,再见eval //var funStr = logFun.toString(); //GM_log(funStr); //return unsafeWindow.eval(funStr); //----拦截方法2 var accountName = $("#txtLogonUserCode"); if (accountName.length > 0 != undefined && accountName.val() != "") { var user = { userName: accountName.val() }; GM_setValue("aq100_user", user); } GM_log(accountName); logFun(); } } if (tooberUrl.indexOf("/course/courseEleView?") != -1) { //因为@run-at document-start,在此设置页面加载完才运行 GM_log("学习项"); //注意前端函数 unsafeWindow.hackTime = hackTime //------手动按钮---- $("#Menu").before('<input id="hackBtn" style="background-color:yellow;font-size:20px" type="button" style="height:60px" onclick="hackTime()" value="【破解学习】">'); var thisUrl = $("#Menu li a font[color='blue']"); var nextUrl = thisUrl.parent().parent().next().find("a"); var nextOnClick = undefined; if (nextUrl.length > 0) { nextOnClick = nextUrl.attr("onclick"); if (nextOnClick != undefined) { var str = nextUrl.text(); $("#Menu").before('<div style="color:red;font-size:18px">破解完将自动翻到【下一页】<br/>【' + str + '】</div>'); } else { $("#Menu").before('<div style="color:green;font-size:18px">本页已学习完毕,准备【返回课程】列表</div>'); } } else { $("#Menu").before('<div style="color:green;font-size:18px">本页已学习完毕,准备【返回课程】列表</div>'); } //------手动按钮------------- //自动执行 window.setInterval(function() { hackTime(nextOnClick); }, 1000); } else if (tooberUrl.indexOf("/directExam/examIndexAutoV2") != -1) { //HTML directExam(); //https://bjdc.100anquan.com/directExam/freePracticeV2/2141/4456/stochastic //(单/多选、判断题都有的考试地) https://bjdc.100anquan.com/directExam/examIndexAutoV2?examId=1523&examPaperId=19461&orgProjectId=2900 GM_log("考试"); var subBtn = $("div[onclick='subTest()']"); if (subBtn.length > 0) { if ($("div").length > 0) { $("div").eq(0).before('<h1 style="text-align:center;background-color:black;color:white">已为您答完,您可以校对【答案】,或直接点击【交卷】完成考试。</h1>'); } } $("ul").each(function() { var ul = $(this); var dl = ul.parent().parent().parent().parent().attr("id"); GM_log(dl); var sty = []; if (dl != undefined) { sty = dl.split("_"); } ul.find("li").each(function() { var attr = $(this).attr('onclick'); if (typeof attr !== typeof undefined && attr !== false) { if (attr.indexOf("chooseAnswer(") != -1) { //单选题chooseAnswer //chooseAnswer('4','205549','0','0'); //最后一位是'1'是正确的 if (endWidth(attr, "'1');")) { $(this).append(' <strong style="background-color:green;font-size:20px;color:white">【✔】</strong>'); $(this).click(); //自动点击正确 if (sty.length >= 2) { $("#SHOWSTYLE_" + sty[1]).removeClass().addClass("li_2"); } } } else if (attr.indexOf("chooseJudgeAnswer(") != -1) { //判断题chooseJudgeAnswer //chooseJudgeAnswer('T','332956','1') //选择题以1结尾的应该选择正确,以0结尾的应该选择错误 if (endWidth(attr, "'1');")) { if (ul.find(".hkmsg").length <= 0) { //避免重复添加 ul.find("li").eq(0).append(' <strong class="hkMsg" style="background-color:green;font-size:20px;color:white">【✔】</strong>'); ul.find("li").eq(0).click(); //自动点击正确 if (sty.length >= 2) { //$("#SHOWSTYLE_" + sty[1]).removeClass().addClass("li_2"); $("#SHOWSTYLE_" + sty[1]).removeClass(); $("#SHOWSTYLE_" + sty[1]).css({ "border": "1px solid #44d441", "background": "#ddfddc", "color": "blue" }); } } } else { if (ul.find(".hkmsg").length <= 0) { ul.find("li").eq(1).append(' <strong class="hkMsg" style="background-color:green;font-size:20px;color:white">【✔】</strong>'); ul.find("li").eq(1).click(); //自动点击错误 if (sty.length >= 2) { //$("#SHOWSTYLE_" + sty[1]).removeClass().addClass("li_2"); $("#SHOWSTYLE_" + sty[1]).removeClass(); $("#SHOWSTYLE_" + sty[1]).css({ "border": "1px solid #44d441", "background": "#ddfddc", "color": "blue" }); } } } } else if (attr.indexOf("chooseMoreAnswer(") != -1) { //多选题chooseAnswer //chooseMoreAnswer('1','244380','0','1');; //最后一位是'1'是正确的 if (endWidth(attr, "'1');")) { $(this).append(' <strong style="background-color:green;font-size:20px;color:white">【✔】</strong>'); $(this).click(); //自动点击正确 if (sty.length >= 2) { //$("#SHOWSTYLE_" + sty[1]).removeClass().addClass("li_2"); $("#SHOWSTYLE_" + sty[1]).removeClass(); $("#SHOWSTYLE_" + sty[1]).css({ "border": "1px solid #44d441", "background": "#ddfddc", "color": "red" }); } } } } }); }); } else if (tooberUrl.indexOf("/directExam/examInfoTestv2") != -1) { //HTML directExam(); //强行考试https://bjdc.100anquan.com/directExam/freePracticeV2/2141/4456/stochastic GM_log("强行考试"); //也可以加button强引网址考试 //onclick $(".tj_btn").before('<button style="background-color:yellow;font-size:20px" onclick="directExam();">强行考试</button>'); } else if (tooberUrl.indexOf("/loginV2/userLogin") != -1) { GM_log("跳过弱密码修改"); if ($("html").html().indexOf("鉴于您的密码过于简单") != -1) { unsafeWindow.window.location.href = "https://bjdc.100anquan.com/index"; } } else if (tooberUrl.indexOf("/course/personStudyPage/") != -1) { //https://bjdc.100anquan.com/daxing/course/personStudyPage/3292/21762 ////查看考试地址https://bjdc.100anquan.com/directExam/examInfoTestv2/2141?orgProjectId=4456 GM_log("学习列表: "); //hook掉判断学习时间函数,原函数里面也有一个错误 [url] 未定义 unsafeWindow.judgeScoreXinjiang = function(courseId, obj, elementId, wareIndex) { GM_log("hook judgeScoreXinjiang"); unsafeWindow.window.location.href = "/daxing/course/courseEleView?elementId=" + elementId + "&courseId=" + courseId + "&wareIndex=" + wareIndex + "&orgProjectId=4456"; return; }; //gotoExam('1987','4460') //var btn = $("input[onclick^='gotoExam(']"); //if(btn.length >0){ //判断jquery元素是否存在不能判断undefined需要判断length //var arr = btn.eq(0).attr("onclick").match(/\d+/g); //var url = "https://bjdc.100anquan.com/directExam/examInfoTestv2/" + arr[0] +"?orgProjectId=" + arr[1]; //GM_log("hack " + url); //} var tables = $("table"); if (tables.length >= 1) { //加入提示 var div = tables.eq(1).before('<h3 style="text-align:center;background-color:black;color:white" >★ 破解插件正在运行 ★</h3>'); div = div.before('<h3 style="background-color:red;color:white" >★ 1 点击本页第一个项目,会自动学到最后一项 ★</h3>'); div = div.before('<h3 style="background-color:red;color:white" >★ 2 学完本页全部项后,会自动【申请学时】 ★</h3>'); div = div.before('<h3 style="background-color:red;color:white" >★ 3 申请完学时,可【返回】继续学习其它页 ★</h3>'); div = div.before('<h3 style="background-color:red;color:white" >■ 注:如果遇到网络卡顿,无法加载视频自动执行时,请按【F5】键刷新页面即可继续刷新学习 ■</h3>'); div = div.before('<h3 style="text-align:center;background-color:black;color:white" >★ 破解插件正在运行 ★</h3>'); } //***自动申请学时 // 寻找是否有进入学习的按钮refreshPage(this,'31664','1'); var arr = $("input[onclick^='refreshPage(']"); if (arr.length > 0) { var flag = false; var okNum = 0; //已学习的项 arr.each(function() { var str = $(this).val(); if (str == "已学习") { okNum++; } }); if (okNum == arr.length) { // 拦截修改autoPayScore里的alert,修改为申请成功才返回 // 避免重复刷新后又执行autoPayScore var autoPayScore = unsafeWindow.autoPayScore; var autoPayScoreStr = unsafeWindow.autoPayScore.toString(); autoPayScoreStr = autoPayScoreStr.replace('location = location;', ''); autoPayScoreStr = autoPayScoreStr.replace('alert("申请成功!")', 'alert("申请学时成功!");location = location;'); if ($("input[onclick='autoPayScore()']").length > 0) { GM_log("未申请学时,将自动申请"); //unsafeWindow.autoPayScore(); //拦截以后 //eval里的autoPayScoreStr字符串不是能直接执行的script //而是定义的 function autoPayScore()方法; //需要在eval后面追加立即执行字符串 unsafeWindow.eval(autoPayScoreStr + "autoPayScore();"); } else { GM_log("已申请学时") } $("title").html("■已学完■"); } } } else if (tooberUrl.indexOf("/project/projectV2/") != -1) { //https://bjdc.100anquan.com/project/projectV2/4010/Detai //破解后 https://bjdc.100anquan.com/person/personOrgSubjectList?orgProjectId=4515 GM_log("课程列表"); var regBtn = $("button[onclick^='registration(']").eq(0); if (regBtn != undefined) { var onc = regBtn.attr("onclick"); //registration('0.0','2020-02-25 10:59:40.0') if (onc != undefined && onc.indexOf("registration('0.0'") == -1) { //收费的 var substr = tooberUrl.match(/\/(\d+)\//); if (substr.length >= 1) { var num = substr[0].replace(/\//g, ''); var script = "javascrtpt:window.location.href='https://bjdc.100anquan.com/person/personOrgSubjectList?orgProjectId=" + num + "'"; regBtn.parent().before('<br/><button class="btn-primary" style="margin-right:100px;" onclick="' + script + '">破解学习</button>'); } } } } //else if(tooberUrl.indexOf("/course/personStudyPage/") != -1){ // // personStudyPage/4456/18881 orgProjectId/courseId // // refreshPage(this,'59851','1'); // // goto https://bjdc.100anquan.com/daxing/course/courseEleView?elementId=59851&courseId=18881&wareIndex=1&orgProjectId=4456 // unsafeWindow.getItem = getItem //同名函数注入到前台 // $(".btn_ab").each(function(){ // var onc = $(this).attr("onclick"); // if(onc.indexOf("refreshPage") != -1){ // var arr = tooberUrl.split("\/"); // var orgProjectId = arr[arr.length - 2]; // var courseId = arr[arr.length - 1]; // var elementId = onc.split(",")[1].replace(/'/g,""); // var wareIndex = onc.split(",")[2].replace(/'|\);/g,""); // $(this).before('<input name="button2" type="button" class="btn_ab" id="button2" onclick="getItem('+elementId+','+courseId+','+wareIndex+','+orgProjectId+');" value="学习完毕">'); // } // }); //} function endWidth(str, target) { var start = str.length - target.length; var arr = str.substr(start, target.length); if (arr == target) { return true; } return false; } function getItem(elementId, courseId, wareIndex, orgProjectId) { var url = "https://bjdc.100anquan.com/daxing/course/courseEleView?elementId=" + elementId + "&courseId=" + courseId + "&wareIndex=" + wareIndex + "&orgProjectId=" + orgProjectId; get(url, function(html) { GM_log(html); }); } function get(url, call) { GM_xmlhttpRequest({ method: 'GET', url: url, headers: {}, onload: function(responseDetails) { var html = responseDetails.responseText; call(html); } }); } function hackTime(nextOnClick) { var isFlash = false; //判断是否是flash控件播放 var player = unsafeWindow.window.cc_js_Player; if (player == undefined) { isFlash = true; } var time = 0; if (!isFlash) { time = Math.round(unsafeWindow.window.cc_js_Player.getDuration()); } else { time = Math.round(unsafeWindow.player.j2s_getDuration()); } if (!isNaN(time) && time > 0) { $("#stayInVideoTime").val(time); unsafeWindow.ajaxSendData(); $("#hackBtn").val("已学完【" + time + "】秒"); $("#hackBtn").css({ 'background-color': 'green', 'color': 'white' }); $('#hackBtn').attr("disabled", "disabled"); if (nextOnClick != undefined) { //有下一项则执行 //eval 如果传入的是function方法字符串,后面需要追加立即执行 unsafeWindow.eval(nextOnClick); } else { //没有则返回 unsafeWindow.returnForward(); } } else { var timestamp = new Date().getSeconds(); $("#hackBtn").val("网慢无法加载时按【F5】键刷新,视频加载中【" + timestamp + "】"); $("#hackBtn").css({ 'background-color': 'red', 'color': 'white' }); } try { if (!isFlash) { unsafeWindow.window.cc_js_Player.pause(); } else { GM_log("FLASH NOT FUNCTION PAUSE();"); } } catch(err) { GM_log(err); } } }