前言
最近一直用的机构答题系统不知道什么原因,突然给题目标上了难度,要是真实考试的时候有也就忍了。
主要官方公布的模拟考试系统没有标难度,正常情况下一般考试也不会标难度。
个人感觉就是跨端的时候,PC 端忘记处理了,才有了显示难度一说。
但我是把机构的模拟系统当做真正的考试用,所以力求能跟真实考试的系统一样,这样在考试的时候就会从容很多。
这里记录一下解决方法,以备后续查询。
解决
简单科普:
Web 网页走的是 HTTP 协议,最大的特性就是无状态无连接。
一次请求完成后,服务器就会断开当前客户端的连接。
这样我们就可以通过请求完成后,使用 JavaScript 去直接修改当前网页的内容。
下面直接上代码:
setInterval(function() { paras = document.getElementsByClassName('_7Nwsouy5L5H6P24HNsc3YQ=='); for (i = 0; i < paras.length; i++) { //删除元素 元素.parentNode.removeChild(元素); if (paras[i] != null) paras[i].parentNode.removeChild(paras[i]); } }, 1000);
有了代码之后,我们将代码复制到控制台运行,就可以完美删除考试系统中的难度标识了。
因为这段代码中有一个定时器,所以当我们在当前页面中运行过一次中,代码就会一直执行,直到页面重载。
扩展
上面解决了我的根本需求之后,但我还是觉得很不方便,因为每次使用的时候,都要手动运行代码。
第一时间,我想到了油猴脚本(可以理解成一个一直在运行的容器),但是我没写过油猴脚本怎么办。
立马现学当然是一个不错的方法,但对于有些情况,比如说我现在的需求是为了一直运行一个可以去除考试系统中难度的代码。
我的本质需求是为了考试哎,最节省时间的方法当然是使用人工智能啦,此时一个 ChatGPT 的靓仔走了出来。
将上述代码复制到 ChatGPT 中,并指令其修改成油猴脚本,一瞬间代码就改写完成了(毕竟只有几行代码)。
// ==UserScript== // @name 去除题目难度元素 // @namespace https://www.vip.com/ // @version 1.0 // @description Remove elements on Zhumavip website every second // @author Your Name // @match https://www.vip.com/* // @grant none // ==/UserScript== (function() { 'use strict'; setInterval(function() { var paras = document.getElementsByClassName('_7Nwsouy5L5H6P24HNsc3YQ=='); for(var i=0; i<paras.length; i++){ if (paras[i] != null) { paras[i].parentNode.removeChild(paras[i]); } } }, 50); })();
后话
严格意义上说,本文并不是一篇完整的教程,只是简单的提供了一个大的方向,例如可以通过 JavaScript 来删除页面中内容(你这好像在说废话),以及通过油猴脚本来自动运行代码,还有就是利用 ChatGPT 来生成一些简单的代码,所以在标题中,我写明了小白思路,大佬就别喷我啦 ,另外,也可以通过这种方式去实现去广告或者在网页中显示一些自己个人想要的效果,但个人觉得去广告还是使用现成的广告插件会比较好,逃~
Comments | 10 条评论
Saammaa 博主
需求不是太精细的话,一个 ADGuard 插件就能搞定,这玩意自带过滤自定义元素功能
龙鲲 博主
@Saammaa
同样有用到类似去广告的插件,但没想到这个思路,赞一个
TeacherDu 博主
龙兄我来了哦~
龙鲲 博主
@TeacherDu
杜老师这称呼要笑死我,然后继承我的花呗欠款吗,2333333
ayiya 博主
老兄你用的是什么域名邮箱啊
龙鲲 博主
@ayiya
就QQ邮箱
木木困玉光 博主
找到对应的元素,然后用CSS隐藏也可以
如果使用Chrome插件,可以了解下Stylus,蛮方便的
当然用油猴也可以,条条大路通罗马。看个人选择吧
龙鲲 博主
@木木困玉光
收到,又 Get 一个小技巧
ayiya 博主
不知道是我们公司网问题还是你那服务器问题感觉加载好慢啊~
龙鲲 博主
@ayiya
感觉应该是你公司网的问题,我这访问还可以