python答题器_JavaScript教程之一个基于chrome扩展的自动答题器
1 var config;//设置
2 var auto_all_ans=0;//全自动答题标志
3
4 $(function() {5
6 //加载设置
7 //config = {'set':{'save_login': 1, 'sign_ans': 1, 'auto_ans': 0}, 'login_info':{}, 'active':''}; // 默认配置
8
9 //打开活动页面
10 $('#open_page').click(function()11 {12 chrome.tabs.create({url: 'http://xxjs.dtdjzx.gov.cn/index.html'});13 })14 //打开登陆页面
15 $('#open_login_page').click(function()16 {17 getCurrentTabId(tabId =>{18 chrome.tabs.update(tabId, {url: 'https://sso.dtdjzx.gov.cn/sso/login'});19 });20 })21 //清除登录信息
22 $('#open_logout_page').click(function()23 {24 sendMessageToContentScript(25 {'cmd':'logout','data':{}},26 //回调函数
27 function(response){if(response) {}}28 );29 //删除active类
30 $('.active').removeClass('active');31 })32
33 //显示、隐藏设置区域
34 $('#hide_config').click(function(){35 $('#hide_config').hide();36 $('#show_config').show();37 $('#config').hide(500);38 })39 $('#show_config').click(function(){40 $('#show_config').hide();41 $('#hide_config').show();42 $('#config').show(500);43 })44
45
46 //手动更新
47 $('#update').click(function(){48 $(this).html('更新中...');49 $(this).css('pointer-events','none');50
51 var xhr = newXMLHttpRequest();52 xhr.open("GET", "http://mydomain/dengta/update.php?v="+config['set']['date_version'], true);53 xhr.onreadystatechange = function() {54 if (xhr.readyState == 4) {55 //JSON解析器不会执行攻击者设计的脚本.
56 //var resp = JSON.parse(xhr.responseText);
57 //console.log(resp);
58 if(resp=xhr.responseText)59 {60 //console.log(resp);
61
62 //清空原有扩展题库
63 sendMessageToContentScript({'cmd':'del_new_ques'}),64
65 //第一行是最新的版本号,并保存设置
66 setTimeout(()=>{67 config['set']['date_version']=resp.match(/(\/\/)(\S*)/)[2];68 console.log(config);69 save_set();70 },1000);71
72
73 //通过update函数向content更新补充题库
74 setTimeout(()=>{update(xhr.responseText);},2000);75
76 //弹出提醒
77 //alert('已更新数据至'+config['set']['date_version'])
78 }79 else
80 {81 alert('已是最新版本')82 }83 }84 }85 xhr.send();86
87 setTimeout(()=>{$(this).html('已更新'+config['set']['date_version']);},2000);88 })89
90 //切换上一人、下一人功能
91 $('#prev_one').click(function(){92 $('#login_info_conf .active').prev().find('.login_info_change').click();93 });94 $('#next_one').click(()=>{95 $('#login_info_conf .active').next().find('.login_info_change').click();96 })97
98 //导入导出功能
99 $('#input_login_info').click(()=>{100
101 var new_login_info=$('#input_login_info_box').val();102 //测试是否有效
103 try
104 {105 new_login_info=JSON.parse(new_login_info);106 }107 catch(err)108 {109 txt="您输入的字符串有误,请重新查证。";110 alert(txt);111 }112 //成功转化的字符串
113 //console.log(new_login_info);
114 if(typeof new_login_info === 'object')115 {116 console.log(new_login_info);117 $.extend(config['login_info'],new_login_info);118 //向content_script报告新加入的用户
119 sendMessageToContentScript(120 {'cmd':'add','data':new_login_info},121 //回调函数
122 function(response){if(response) {123 }}124 );125 alert('导入完成');126 }127 });128 //登录信息导出
129 $('#output_login_info').click(()=>{130 $('#input_login_info_box').val(JSON.stringify(config['login_info']));131 });132 //全自动答题功能
133 $('#auto_all_ans').click(()=>{134 auto_all_ans=1;135 $('.login_info_change').each((i,v)=>{136
137 setTimeout(()=>{138 $(v).click();139 },(config['set']['dtime']*1000+500)*53*i+1000);140
141 });142 })143
144 //函数:向content保存设置
145 functionsave_set(){146 var res={147 'cmd':'set_conf',148 'data':{149 'save_login': $('#save_login').get(0).checked?1:0,150 'sign_ans': $('#sign_ans').get(0).checked?1:0,151 'sign_ans_mouseover': $('#sign_ans_mouseover').get(0).checked?1:0,152 'auto_ans': $('#auto_ans').get(0).checked?1:0,153 'dtime':parseFloat($('#dtime').val()?$('#dtime').val():3),154 'date_version':config['set']['date_version']155 }156 };157 console.log(res);158 sendMessageToContentScript(159 res,160 //回调函数
161 function(response)162 {163 if(response)164 {165
166
167 }168 }169 );170 //chrome.storage.local.set(res['data']);
171 config['set']=res['data'];172 console.log(res);173 }174
175 //函数:向content递交补充题库
176 functionupdate(data){177 var new_data=data.split(/[\n]+/g);178 console.log(new_data);179 var len=new_data.length;180 var j=0;//题目答案计数器
181 var new_question='';182 var new_answer='';183 var new_ques_arr=[];184
185 //第一个不为空的数组为试题
186 for(var i=0;i
188 if(new_data[i].match(/^\/\//))189 continue;190 //第0、2、4、6..行是题目
191 //第1、3、5、7..行是答案
192 if(j%2==0)193 {194 new_question=new_data[i].replace(/[ABCD. \r\n]/g,'');195 }196 else
197 {198 new_answer=new_data[i].replace(/[ABCD. \r\n]/g,'');199 new_ques_arr.push([new_question,new_answer]);200
201 new_question='';202 new_answer='';203 }204 j++;205 };206 //向前端发送命令
207 if(new_ques_arr.length>0)208 {209 //对无关信息过滤
210 var res={211 'cmd':'set_new_ques',212 'data':new_ques_arr213 };214
215
216 sendMessageToContentScript(217 res,218
python答题器_JavaScript教程之一个基于chrome扩展的自动答题器相关推荐
- html5 答题器页面,JavaScript教程之一个基于chrome扩展的自动答题器(4)
108 }109 //存放到本地存储空间 110 localStorage['config']=JSON.stringify(config);111 };112 $('#msgFromContent' ...
- python webkit内核_Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件
在C#中,默认的WebBrowser控件默认使用的是IE的core,而IE的种种遭人吐槽的诟病使我不敢轻易使用WebBrowser,因此,打算使用Chrome的内核替换IE.Chrome的内核使用的是 ...
- [No0000188][VCB-Studio 科普教程 2.5] 基于 PotPlayer 和 madVR 的播放器教程(已更新 XySubFilter)...
Potplayer 是高清影视常用的播放器,界面简洁,功能齐全,比 MPC-HC 和 MPC-BE 更人性化:但其默认方案十分糟糕,预设过多错误,无法正确播放 10-bit 视频,一直饱受诟病.VCB ...
- android 流播放器开发,GitHub - youcoding98/FastVideo: 基于Android平台的移动流媒体播放器的开发...
基于Android平台的移动流媒体播放器的开发 主页界面如下 第一部分 课题相关介绍 与普通播放器相比,流媒体播放器最主要的不同点在于其能够实现实时的视频播放,用户可以实现边加载边播放,不需要一次全下 ...
- python selenium中如何测试360等基于chrome内核的浏览器
直接上代码,注意是基于chrome内核的浏览器,基于ie的请替换其中的chrome方法为ie,但自己未尝试过,如果有结果可以告知! from selenium.webdriver.chrome.opt ...
- Postman基于Chrome扩展插件安装
Postman 是一个很强大的 API调试.Http请求的工具. 该方式是基于 Chrome 浏览器的扩展插件来进行的安装,并非单独应用程序. 1.插件安装包下载地址: 链接:下载链接 ...
- python做excel表格教程视频_基于Python实现excel表格读写
首先安装对应的xlrd和xlwt 打开cmd命令窗口输入pip install xlrd和pip install xlwt就可以安装.之后输入pip list检查是否成功配置: xlrd操作# 接下来 ...
- Python爬虫入门教程 90-100 凌晨5点的CSDN自动签到器,用Python爬虫干点闲事
梦想橡皮擦:这是爬虫百例的第90篇文章,写到这里非常感慨,从第一篇文章在2018年7月30日发布至今已经将要过去2年的时间,即将到达终点.虽然过程中多次因为工作原因导致断更了,但是终于把这个系列坚持了 ...
- 基于android平台多媒体播放器的设计与实现,基于Android的多媒体音乐播放器设计论文...
中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2016)03-0240-02 随着计算机网络与手机的迅速发展,各种音乐资源成为人们生活中必不可少的一部分,音乐播放软件成了手机必 ...
最新文章
- 华为诺亚方舟加拿大实验室提出BANet,双向视觉注意力机制用于单目相机深度估计...
- mysql 并发锁表_MySQL锁表的用法,防止并发情况下的重复数据
- python读取文件第n行-Python实现读取文件最后n行的方法
- TP5 验证码功能实现(解决点击验证码不更新的问题)
- 校验金额、大小写字母、大写字母、合法uri、email
- 学习Nginx,看这篇就就好了!(多图详解)
- “命令终端”的实现2-字符读取及按键控制
- SetWindowPos详解
- S5PV210体系结构与接口09:SD卡启动详解
- CSS3学习笔记--line-height:150%与line-height:1.5的真正区别
- 计算机实验室场地报告,实验室申请报告.doc
- 计算机网络语音传输杂音回音,语音时有回音和杂音,怎么消除?
- 装修行业怎么找精准客户?有那些获客渠道?
- 基于Kotlin、ViewModel、LiveData和LifeCycle开发的Readhub客户端
- python实现问卷网的自动填写详解
- 二等水准测量记录数据_二等水准测量外业数据整理(往返测)
- 前端使用vux中md5加密方法
- 题解 JZOJ 1353.渡河问题
- MCS-51单片机结构学习总结
- 电脑上怎么登录几个微信(微信多开)?不需要安装软件的方法,超简单