这个代码能优化的,可以吧clearInterval(a)放e.click后面
!(data/attachment/forum/202206/21/170547mbb5zm5wxwhpwhc3.png)
试过了,不行,它在页面加载出来之后,密码是输进去了,但是却没有点击 Su. 发表于 2022-6-21 17:06
!(data/attachment/forum/202206/21/170547mbb5zm5wxwhpwhc3.png)
试过了,不行,它在页面加载出来之 ...
这玩意跟之前是一样的,输入之前就点击了,我把整个settimeout都放进去之后ok了 Su. 发表于 2022-6-21 17:51
这玩意跟之前是一样的,输入之前就点击了,我把整个settimeout都放进去之后ok了 ...
```javascript
(function () {
'use strict';
var password = "123"
var id = setInterval(() => {
var a = document.querySelector('#userpassword_ctrl')
var b = document.querySelector('#loginbtn')
if (a) {
a.value = password;
var c = new Event('input');
if(a.dispatchEvent(c)){
b.click()
clearInterval(id)
}
}
console.log("1")
}, 100)
// Your code here...
})();
```
这样应该就不会先点击了吧,可是点击还是没反应,暂停的话也可以看到密码确实是输入进去了,很奇怪 ```javescript
(function () {
'use strict';
var password = "123"
var id = setInterval(() => {
var a = document.querySelector('#userpassword_ctrl')
if (a) {
a.value = password;
var c = new Event('input');
if (a.dispatchEvent(c)) {
var b = document.querySelector('#loginbtn')
if (b) {
if (b.click()) {
clearInterval(id)
}
}
}
}
console.log("1")
}, 100)
// Your code here...
})();
```
修改了这个就行了
```javescript
if (b.click()) {
clearInterval(id)
}
```
shinonome 发表于 2022-6-22 07:54
```javescript
(function () {
'use strict';
虽然确实可以点击了,但是他还在一直循环 Su. 发表于 2022-6-22 08:19
虽然确实可以点击了,但是他还在一直循环
啊这,确实,难受 Su. 发表于 2022-6-22 08:19
虽然确实可以点击了,但是他还在一直循环
看了一下,四五次定时后才click shinonome 发表于 2022-6-22 09:22
看了一下,四五次定时后才click
界面大概4、5百毫秒后加载完成 应该是动态加载元素的问题,这种定时器的写法性能很糟糕的,可以看看论坛里关于MutationObserver的文章。
页:
1
[2]