自动登录脚本的问题
我现在想做一个自动登录的脚本,但是我遇到了一点问题。我在监听load的时候触发回调函数执行fillForms
```
window.addEventListener("load", () => {
const currentURL = window.location.href;
if (currentURL.includes("https://xxx.com/login")) {
fillForms(getRandomAccount());
}
});
```
这是fillForms函数的逻辑
```
function fillForms(account) {
document.querySelector('input').value = account.username;
document.querySelector('input').value = account.password;
let submitbutton = document.querySelector('button');
console.log(submitbutton);
console.log(submitbutton.click);
if (submitbutton) {
console.log(submitbutton);
submitbutton.click();
}
// setTimeout(() => submitbutton.click(), 1000);
localStorage.setItem("account", account);
}
```
其中页面执行脚本后,submitbutton的节点可以正常输出,但是我的登录页面并不会跳转,我怀疑它没有执行click函数,所以我在注释里面使用延时函数去触发click事件,结果延时触发页面发生了成功跳转登录成功了,为什么呢?我的代码该做怎么样的改进才能直接去触发click事件,而不需要使用延时函数 页面延迟加载的问题https://learn.scriptcat.org/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/%E5%B8%B8%E8%A7%81%E8%AF%AF%E5%8C%BA1/
最常用的就是setinteval循环查看
再往上可以用addeveterlistner监听DomInserted事件,但是存在延迟,目前更普遍的是使用MutationObserve
https://learn.scriptcat.org/%E5%AE%9E%E7%94%A8%E7%9F%A5%E8%AF%86%E5%BA%93/JavaScript%20%E7%9F%A5%E8%AF%86%E7%AF%87/MutationObserve%20%E7%9F%A5%E8%AF%86/
在此之上更推荐cxxjackie大佬封装的ElementGetter 库
https://bbs.tampermonkey.net.cn/thread-2726-1-1.html
页:
[1]