aliniu 发表于 2023-9-28 17:44:20

雨课堂点击下一页无效,求助

经过初步了解,发现应该还有一个mousemove事件对click事件有影响,借鉴了本论坛其他的其他的一些方式,使用代码:
`
$('.header-bar').dispatchEvent(new Event('mousemove'));
$('.btn-next').dispatchEvent(new Event('click'));
`
发现无效,不知道这个怎么解决呢。
!(data/attachment/forum/202309/28/174318nju4ov8jfoq4ojzb.png)
!(data/attachment/forum/202309/28/170203ikwlrqxw2beh213w.png)~~~~
必要时可以提供账号。

李恒道 发表于 2023-9-28 17:44:21

善用调试工具
根据https://bbs.tampermonkey.net.cn/thread-5084-1-1.html的方式可以直接追到click函数
可以看出是根据this.hasMouse || this.hasLeftMouse) && this.mouseTarget == s
```js
                  changeHasMosue: function(t, e) {
                        this.hasLeftMouse = t,
                        this.mouseTarget = e || null
                  },
                  goDetail: function(t, e) {
                        var i = this
                        , s = e.target;
                        if ((this.hasMouse || this.hasLeftMouse) && this.mouseTarget == s) {
```
直接搜索hasMouse找到了
```js
                            mousemove: a()(s = function(t) {
                              e.hasMouse = Math.sqrt(Math.pow(t.clientX - o, 2) + Math.pow(t.clientY - l, 2)),
                              this.$emit("changeHasMosue", e.hasMouse, t.target)
                            }
                            ).call(s, this),
                            mouseout: a()(n = function(t) {
                              e.hasMouse = !1,
                              o = 0,
                              l = 0,
                              this.$emit("changeHasMosue", e.hasMouse)
                            }
                            ).call(n, this)
```
可得是通过时间冒泡捕获当前鼠标悬浮的元素,点击时判断是否一致
```js
event=new Event('mousemove',{bubbles:true})
event.clientX=9999
event.clientY=9999
$('.btn-next').dispatchEvent(event);
$('.btn-next').dispatchEvent(newEvent('click'));
```
可得以上代码

不过还是优先建议拿vue实例直接触发

李恒道 发表于 2023-9-28 18:28:18

https://bbs.tampermonkey.net.cn/thread-4772-1-1.html
贴错帖子了,是这篇

aliniu 发表于 2023-9-28 21:54:04

李恒道 发表于 2023-9-28 18:24
善用调试工具
根据https://bbs.tampermonkey.net.cn/thread-5084-1-1.html的方式可以直接追到click函数 ...

e.hasMouse = Math.sqrt(Math.pow(t.clientX - o, 2) + Math.pow(t.clientY - l, 2)),
我目前的理解:
这个t.clientXY是鼠标相对于header-bar的最终移动坐标,o,l 是什么我不确定。看代码好像是进入header-bar时的初始坐标,否则就是0,但实际好像不是。所以e.hasMouse 的判定还是理解不太明确。
if ((this.hasMouse || this.hasLeftMouse) && this.mouseTarget == s) {
这个 this.hasLeftMouse 好像就是调试的时候总是显示为false。不知道啥情况,这个this.mouseTarget === s 应该是判断鼠标悬浮元素合理不。
event.clientX=9999
event.clientY=9999
这俩是啥意思呢,为啥要这样呢,目前还不太懂。
初步复现了调试技术。学会了一点,不过因为知识薄弱不懂的更多,持续学习中...等能看懂了再来总结思路。

李恒道 发表于 2023-9-28 21:59:27

aliniu 发表于 2023-9-28 21:54
我目前的理解:
这个t.clientXY是鼠标相对于header-bar的最终移动坐标,o,l 是什么我不确定。看代码好像 ...

解决hasMouse
懒得思考了
就直接赋值超大值测试了
这个还是控制vue实例更稳定一些
页: [1]
查看完整版本: 雨课堂点击下一页无效,求助