携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
在修改移动光猫的 Wifi 名称时,如果 Wifi 名称不是以 CMCC- 开头,在想要点击“立即生效”保存设置时,页面会提示:“无线名称必须以 CMCC- 开头,请重新设置无线名称”。导致无法修改成功。
一、解决方式
先说解决方式,待会再介绍原理。
在网页点击右键 -> 检查,再点击 Console 控制台,输入以下代码:
pageCheckValue = function (){return true;}
然后关掉检查页面,再点击“立即生效”按钮就不会报错了。
比如这里可以看出,Wifi 名称成功被修改成了以 S 开头。
二、原理
这是什么原理呢?
我们可以猜测,在点击“立即生效”按钮时,页面会做一些检查。如果发现新 Wifi 名称不是以 CMCC- 开头的,就会报这个错误。
所以我们需要做的是:找到这个检查的函数,再将这个函数修改掉,去掉这个限制。
2.1 寻找检查函数
在检查页面,点击检查窗口左上角的小箭头,再点击页面的“立即生效”按钮,查看这个按钮对应的代码:
可以看到,这个按钮点击后调用了 wifi_user_pass_change() 方法,在 Elements 页面点击 Ctrl + F 打开搜索框,输入 wifi_user_pass_change() 搜索这个方法:
可以看到这个函数调用了 pageCheckValue 函数,再搜一下 pageCheckValue 函数的实现(实际上这个函数就在上一个函数的下面):
可以看到 pageCheckValue 函数中做了一些检查,正是在这个函数中检查了前缀是否为 "CMCC-"。
2.2 修改检查函数
定位到了限制 "CMCC-" 开头的函数,我们将这个函数修改掉就可以了。
所以我们在 console 中输入:
pageCheckValue = function (){return true;}
的目的就是将 pageCheckValue 函数修改为直接通过,不做任何检查。