开发Chrome插件,实现网站自动登录
近期被一个事情困扰着,我们采购了一款软件,里面有一个数据大屏页,当登录过期后,数据就会保持原状,不再更新。和供应商反馈了很多次,都无法彻底解决数据显示的问题,没办法,自己周末在家研究,网站自动登录的事情。
想到Chrome插件可以解决这个事情,主要原理就是:新开一个页,定时刷新这个页面,检测是否掉线,如果掉线,就触发登录按钮,实现自动登录,这个检测是在后台进行的,不能影响前端的数据大屏显示信息。
上代码:
一,每隔10秒钟刷新一下页面,检测是否掉线,掉线的标准就是有个方法返回的长度异常,异常后就刷新页面,显示出登录按钮,然后触发点击事件,这里不需要关心用户名和密码问题,因为已经让浏览器记住用户名和密码了,只需要登录就可以了,这个网站也比较简单,没有验证码等环节。页面命名为:main.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | $(document).ready( function () { var time= new Date(); console.log( '检测是否掉线 ready -' +time.toLocaleString()+ '!' ); function checkWebStatus(){ console.log( '检测是否掉线!' ); $.get( "/MonitorStatus/GetOnlineUserCount" , function (data,status){ console.log( "GetOnlineUserCount,数据: " + data.substring(0,100) + "\n状态: " + status); //掉线了,这个方法就会重定向到登录页,导致数据量大增 if (data.length>50) { //判断是否在登录页 if ($( "#loginSystem" ).length > 0){ console.log( '掉线了,将重新登录!' ); $( "#loginSystem" ).each( function () { $( this ).click(); }); } else { //大屏页不刷新,其他页刷新。 if (location.href.indexOf( "MonitorStatus" )<0) ( location.reload() ) } } else { console.log( '未掉线!' ); //再探再报 setTimeout(checkWebStatus, 10000); } }); } setTimeout(checkWebStatus, 10000); }); |
二,编辑manifest.json页,代码如下,主要功能是设置chrome插件属性,如名称,版本,权限,调用的js名称等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | { "name" : "自动登录" , "version" : "1.0" , "manifest_version" : 3, "description" : "自动登录" , "icons" :{ "16" : "./images/icon.png" , "48" : "./images/icon.png" , "128" : "./images/icon.png" }, "permissions" : [ "tabs" ], "content_scripts" : [ { "matches" : [ "*://你的网站地址/*" ], "js" : [ "jquery-1.11.3.min.js" , "main.js" ] } ] } |
三,编写完之后,目录结构是这样的。
四,安装配置到Chrome扩展程序。
五,打开要检测掉线的网站,看是否会自动登录。因网站可能会涉及数据泄露,就不发网站示例了,把控制台的输出截图展示一下。程序已正常运转,那个数据大屏展示页,再也不会因掉线出现数据不正确的现象了。
以此类推,开发Chrome扩展插件,还可以实现,其他一些功能,比如数据抓取,网站异常报警等。Chrome扩展插件,真是一个好功能!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库