Skip to content

Instantly share code, notes, and snippets.

@yougg
Last active March 25, 2020 14:42
Show Gist options
  • Save yougg/8f060a1b081efb8fec6c4903e012f2d4 to your computer and use it in GitHub Desktop.
Save yougg/8f060a1b081efb8fec6c4903e012f2d4 to your computer and use it in GitHub Desktop.
通过QQ空间个人资料修改QQ昵称为空格过程记录
  1. 登陆自己的QQ空间 https://qzone.qq.com/

  2. 进入个人档,点击修改基本资料

  3. 在昵称处填入一个到多个Unicode空格

  4. 点击最下方的保存按钮,此时会弹框提示很抱歉,昵称不能全为空,请重新输入

    • 按Chrome F12或者Ctrl+Shift+I快捷键打开开发者工具窗口
    • 进入Network标签页,先点击Clear清理一下之前的请求记录
    • 这时再点击一次页面中的保存按钮,在Network标签页中没有看到发起请求记录
  5. 进入Elements标签页按Ctrl+F查找昵称不能全为空,定位到如下元素

    <div class="qz_msgbox_layer_wrap" id="q_Msgbox" style="top: 218px; display: none;">
      <span class="qz_msgbox_layer" style="z-index: 10000;" id="mode_tips_v2">
        <span class="gtl_ico_hits"></span>
        很抱歉,昵称不能全为空,请重新输入
        <span class="gtl_end"></span>
      </span>
    </div>
  6. 右键点击div元素,勾选Break on -> attribute modifications

  7. 再次点击页面中的保存按钮,此时就会触发提示框div的断点,
    开发工具自动跳转到Source标签页的msgbox.js文件中的断点
    点击左下角的{ }Pretty print按钮,查看格式化后的js源文件 可以看到断点是停在名为QZFL.widget.msgbox.show的函数中 按F8或者Ctrl+\恢复js执行到完成
    再回到Elements标签页,右键点击div元素,去除勾选Break on -> attribute modifications

  8. 回到页面中右键点击昵称输入框,选择检查定位到输入框元素所在的位置
    往上滚动查看html源码,可以看到基本资料的表单是一个内嵌iframe的html页面
    再往下滚动到内嵌html的末尾,可以看到几个引入的js文件,资料页面相关的操作应该就在profile.js这个文件里面了

  9. 进入Sources标签页,按Ctrl+P或点击菜单 输入名称profile.js定位打开js源文件
    先点击左下角的{ }Pretty print按钮,查看格式化后的js源文件
    Ctrl+F输入查找QZFL.widget.msgbox.show函数,定位到如下语句在if语句行号处点击标记断点

    if (/^\s*$/.test(nick.value)) {
        TOP.QZFL.widget.msgbox.show("\u5f88\u62b1\u6b49\uff0c\u6635\u79f0\u4e0d\u80fd\u5168\u4e3a\u7a7a\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165", 1, 1E3);
        return;
    }
  10. 回到页面再次点击保存按钮,js代码运行暂停在上面标记的断点处
    进入Console标签页,先点击Clear清理控制台信息
    然后输入代码var tmp = nick.value; nick.value = "xxx"回车执行
    切换到Sources标签页js暂停的断点处,按F10Ctrl+`继续执行js代码到下一处 再回到Console标签页,输入代码nick.value = tmp回车执行
    切换到Sources标签页,点击取消if语句行号处标记的断点
    最后按F8或者Ctrl+\恢复js执行到完成

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment