Re: [问题] 关于填入字段会消失的状况?

楼主: microloft (微阁)   2021-08-03 23:55:23
※ 引述《secretfly (☠鬼灭·之喵喵)》之铭言:
: 如题目
: 主要有两个问题 第一个目的是自动登入 填入帐号与密码
: 使用方式是:
: document.querySelector("#Pwd").value="";
: 只是在b站使用这个方法后 按下登入 数值会不见
: 我发现的问题是 必须要在字段中编辑过 里面的value才不会消失
: 想请问其中原理是什么?该如何解决?
经过测试,如果先用 .value 填帐号,接着再手动输入密码,
则帐号的字段会被清空。反之,先密码再帐号也是一样情形。
以下稍微说明我的猜测与解决方式。
我猜他内部有一个 JS 物件,专门用来储存对应的帐号、密码资讯。
当你手动输入并触发输入事件时,他会把字段内的值更新到内部物件。
当你按下登入,或是换字段输入时,他则会把内部物件的值反写回所有字段中。
因此,解决方式其实很单纯,用 .value 填完之后,手动触发一次输入事件,
让内部物件根据当下字段的值进行更新就可以了。
以下是我试过可正确执行的版本。
// 测试网址
// https://passport.bilibili.com/login
const username = document.getElementById('login-username')
const password = document.getElementById('login-passwd')
username.value = '帐号'
password.value = '密码'
// 触发输入事件
username.dispatchEvent(new InputEvent('input'))
password.dispatchEvent(new InputEvent('input'))
: 另外额外问的第二个问题 : 我用右键检查登入按钮 没发现办法可以用JS操作
: onclick不能使用 也没找到能submit的form
: 又是为什么呢
: 谢谢
因为他并没有使用传统的 <form>,而是直接使用 XMLHttpRequest 送出资讯。
你如果在 vendor.{随机码}.js 内搜寻一个叫 7GwW 的 function,
就会看到最后送出资讯的实作方式。
你可以看他的 XMLHttpRequest 里包含了哪些相关资讯,并模仿用一样的方式来提交。
作者: secretfly (☠鬼灭·之喵喵)   2021-08-06 05:16:00
有神快拜 另外问一下 通常是不是都用cookie阿但监看network的操作那一块我都看不懂(晕题外话他这样搞一个反写目的何在阿 怎么感觉故意的再额外问 图书馆/博客来那种超废验证码是否好解决呢之前我是有在旧版网页用inspect找到里面就有验证值XD

Links booklink

Contact Us: admin [ a t ] ucptt.com