如题 ,我在 chrome 上面用微信读书 ,用了 surfingkeys 插件 ,按 f 模拟点击 下一页按钮 没有反应,然后我又在 设置里面 设置 快捷键
mapkey('<Space>','微信读书下一页',()=>{
let btn = document.getElementsByClassName('readerFooter_button');
console.log(btn[0]);
btn[0].click();
},{domain:/weread\.qq/i});
打印出来了 下一页按钮 ,但 就是 click() 事件没有反应 我在 chrome devtools 里面 也试了 不行 ,是不是 微信读书 的下一页按钮 就 没有 写 onClick 事件啊? 点是 正常用鼠标点 下一页 是可以 翻页的 ,我应该如何 用代码来模拟 下一页的点击呢?
1
975779964 OP 啊……我真蠢 ,微信读书 默认 自带的 左右方向键就可以 翻页了 ,我还 傻傻的 模拟 button 点击 ,都怪 surfingkeys 把 默认快捷键给我屏蔽了 ……
|
2
zxxufo008 2021-10-19 16:43:53 +08:00
你说的是翻页还是下一章啊
|
4
975779964 OP @zxxufo008 我要的是 翻下一页呢,就是你用网页版微信的时候 ,拉到最底下,有个 下一页按钮 的 ,一章里面 有很多页 ,pgup pgdn 只是 网页 的 上下滚动 ,不是我要的效果 , 我刚发现 微信读书 的 方向键 左右 也只是 切换 上 /下 章 而已 ,翻页 的功能 还是没有 ,想要 用 js 模拟 点击 下一页 按钮 却不能实现 ……
|
5
975779964 OP @zxxufo008 现在的核心问题是 为什么 有的 dom 元素 (比如微信读书的 下一页按钮 ,目录按钮 ) 调用 js 的 .click() 方法 (js 模拟点击) 不生效
|
7
975779964 OP @zxxufo008 比如说这本书 https://weread.qq.com/web/reader/73532150723f022f73516a6,他是有下一页的 ,你看看呢 ,有 下一页的按钮 (和下一章是不同的) ,我就是按 f12 然后 知道 这个按钮 的 class 是 readerFooter_button,通过 document.getElementsByClassName('readerFooter_button') 找到 他 ,然后 调用 .click() 事件模拟点击 没有用 才来问的
|
8
chnwillliu 2021-10-20 07:16:45 +08:00 1
因为在事件处理中他判断了事件是否有 clientX,没有的话就不执行后续动作了。
```js var clickEvent = document.createEvent('mouseevent'); clickEvent.initMouseEvent('click', true, false, window, null, 100, 100, 100, 100); document.getElementsByClassName('readerFooter_button').dispatchEvent(clickEvent); ``` 这样就好啦。 |
9
chnwillliu 2021-10-20 07:18:04 +08:00 1
额 getElementsByClassName 返回的是数组,改成 querySelector
document.querySelector('.readerFooter_button').dispatchEvent(clickEvent); |
10
975779964 OP @chnwillliu 哇, 可以了 ,原来是 调用 dispatchEvent 不是 .click() ,谢谢 大佬 现在我的代码 是这样
``` mapkey('<Space>','微信读书下一页',()=>{ let clickEvent = document.createEvent('mouseevent'); clickEvent.initMouseEvent('click', true, false, window, null, 100, 100, 100, 100); let btn= document.querySelector('.readerFooter_button'); btn.dispatchEvent(clickEvent) },{domain:/weread\.qq/i}); ``` 下次我要是元素点不动了,就用 这个 dispatchEvent 方法 |
11
Tesla9527 2023-05-08 23:22:08 +08:00
按空格键好像也可以翻页(一章里面的很多页)
|