因为它是要确认 true 或 false 的,如果覆盖了,之后代码又如何走呢?
基于以上原因,我决定换个思路 。
比如说,看我能不能修改原代码,使其确认自动返回 true 不就行了!
这个...好使不?
你还别说,真让我给找着了!
我将重启路由器的页面保存下来,顺藤摸瓜找到了提交表单的元素项,最后定位到了其中有一个叫作 onsubmit 的标签 。
onsubmit="return doSubmit();"
很显示,这玩意应该就是提交重启时的函数代码啊!
然后我接着找,找这个叫作 doSubmit() 的函数 。
果然在隔壁胡同寻到了它的身影 。
代码整理如下:
function doSubmit(){if(confirm("确认重新启动路由器?")){return true;} else {return false;}}
文章插图
找到这儿就已经很清楚了,这个 doSubmit() 就是按确认提示后返回 true 或 false 来进行判断是否重启 。
那么这下就简单了,只要我主动返回给 onsubmit 这一元素 true 值不就行了呗 。
那这代码应该怎么写呢?
我来来回回找了半天,也没找着 form 的 id 是什么,这叫我怎么获取 form 的元素节点呢?
世上无难事,只怕有心人啊,还好这个页面相当简单,只有一个 form 标签,那么完全可以用 getElementsByTagName 来获取标签元素 。
当然了,这个和 getElementsByName 一样,获取到的是一个数组,只有一个标签的话那通常就是在数组的第一个成员了,也就是数组长度只有 1。
所以代码写成了下面这个样子 。
parent.frames.mainFrame.document.getElementsByTagName("form")[0].onsubmit=true;
好,我们再来试一试哈 。
先给 onsubmit 赋值 true ,然后再来点击重启按钮 。
哈哈,OK 了!成功无视确认直接重启路由器!
哈哈,很兴奋吧,可惜前面说了,这个只是坑一,骚年别激动,后面还有坑哩!
从坑里跳出来,我们接着说下一个坑 。
自动化处理前面这些代码,实际上只能通过手动方式输入到控制台上执行 。
可是我想要的是自动修改密码的效果呀,怎么才能自动化处理执行呢?
这个时候就要请大名鼎鼎的油猴登场了!
油猴有很多,我用的是 Tamper Monkey 。
它是火狐或谷歌等浏览器的一个扩展或插件,用于自动执行用户自定义 JS 代码 。
感觉评分好像最高,于是就选了它 。
说实话,我也是第一次用它,对它的一切不是很熟悉,所以接下来的操作都非常适合新手小白 。
如何安装我就不说了,作为浏览器插件安装起来非常简单方便 。
接下来还是说一说如何实现自动化处理 JS 代码,这才是重点对吧 。
文章插图
头一次,我简单粗暴地把前面的那些代码机械地罗列到了油猴中,可惜很快我就惨败了 。
原因很简单,页面加载往往需要一点的时间间隔,而在页面加载完成前,代码已经跑完了 。
为了让代码能赶上上实际页面加载情况,所以我们需要给代码加上延时 。
setTimeout(function() {...}, 1000);
这个其实就是坑二,延时是根据页面加载的速度决定的,通常你可以设定得长一些,比如 3 到 5 秒的样子 。
另外在点击或跳转页面时,也会出现加载页面的情况,所以基本上每一步操作都要加上延迟 。
之后的完整代码会展示这一点 。
【历经艰难险阻,我搞定了自动修改路由器 WIFI 密码】如果这个时候你迫不及待地将代码放到油猴里跑上一跑,你会发现似乎真的可以做到自动登录、自动修改密码、并自动重启路由器 。
哇!太棒了!这不就是我们想要的吗!
我们成功了!
如果你发出如此感叹,我只能说你还是太年轻了,至少文章在这里才刚过一半 。
要知道,当路由器重启后,页面就会自动重新加载,而只要页面加载,油猴中的代码就会自动开始执行 。
此时你的代码就会再次执行一次,然后路由器又重启了,如此往复、没完没了,让人流泪,令人心碎 。
没错,这就是接下来要说的第三个坑!
推荐阅读
- 薯蓣酒的功效与作用
- 十 侧子酒的功效与作用
- 土布床单怎么样 土布床单好不好
- 一 側子酒的功效与作用
- 二 栝蔞酒方的功效与作用
- 嶺南瘴腳氣酒方的功效与作用
- 怎样用贴吧引流
- 剪草浸酒的功效与作用
- 动物|搁浅抹香鲸被成功放归深海 历经20多个小时营救:网友点赞
- 刺五加酒的功效与作用