F键对B站投币选择按钮偶尔失灵
Describe the bug
B站投币时选择1/2硬币, 大多数时候第一次按F时其中一个硬币选项没有按键提示. 偶尔两个都没有, 需要F取消再按F才会出现. 这个BUG应该很早就有了, 一两年肯定有. 不知道是不是B站有什么特殊机制.
第一次按F是这样的,

取消重按F,

To Reproduce
Steps to reproduce the behavior:
B站地址, https://www.bilibili.com/
触发概率大概有50%.
Browser, OS and Vimium C versions
Vimium C 1.98.0,Microsoft Edge 101,Windows 10
Edge Version: 101.0.1210.47 (正式版本) (64 位)
是因为Vimium C 有好几类“识别可点击元素”的办法,其中一个是隔一阵子汇总一次,你点了硬币按钮后,弹出来的对话框是新创建的,需要几百毫秒的时间来等待“可点击”的信息汇总,才能给LinkHints用上。
这个等待主要是为了性能考虑,攒一批汇总一次,可以节约 CPU。目前没法修改等待时间。
但可以用 map Fq LinkHints.activateWithQueue 这种方式,连续模式下在“刚模拟点击后的第一次汇总”后会自动刷新 LinkHints,有些之前没被识别的就能识别到了。
也可以在第 2 次触发 LinkHints.activate 后的第 1 秒钟内,发现少提示了就立即按 <tab> 键,会立即进行汇总、刷新 LinkHints。
或者用 Firefox。Firefox 提供专有接口,可以用更低代价来收集这类元素,就没有这个等待了。不过 v1.98.0 版在 Firefox 上有个 bug,正好影响了收集,下个版本会修复。
OK, 小问题不影响, 感谢解答~~
补充1:LinkHints显示着时,随时可以用 <f2> 来强制收集“onclick 属性有值”的元素,这个操作挺费 cpu,所以默认不收集;而 <f2> 和 LinkHints刚启动第一秒的 <tab> 会搜集这个。它有时候能收集到更多可点击元素,取决于网页本身怎么写的。
补充2:最彻底的办法,是给 map f LinkHints.activate 添加参数,指定某些元素是可点击的,这个就不受收集方式的影响了。参考: https://github.com/gdh1995/vimium-c/wiki/Add-or-remove-hints#zh 。
对于 B 站硬币按钮,可以这么写:
map f LinkHint.activate clickable=".mc-box"
补充3:我现在打算加个“第二次显示 LinkHints 时立即汇总”的特性,应该也有用,回头设计设计。
厉害!! 我研究一下, 之前没注意还可以自定义排除, 完美了~~
第 1.98.3 版里,LinkHints 连续显示时会强制立即汇总一次,所以一般来说那两个图片按钮都能被识别成“可点击”,所以可以去掉 clickable=".mc-box" 再试试了。
好像还是不行,版本是1.98.3的 流程:先F点击"币"按钮, 然后再F, "1硬币"和"2硬币"依旧有概率不显示.
之前的解决方案已经比较完美了, 赞^^
试试linkhints.activatewithqueue呢?大概是alt-f
---原始邮件--- 发件人: @.> 发送时间: 2022年7月2日(周六) 下午3:08 收件人: @.>; 抄送: "Dahan @.@.>; 主题: Re: [gdh1995/vimium-c] F键对B站投币选择按钮偶尔失灵 (Issue #638)
好像还是不行,版本是1.98.3的 流程:先F点击"币"按钮, 然后再F, "1硬币"和"2硬币"依旧有概率不显示.
之前的解决方案已经比较完美了, 赞^^
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
alt+f对普通B站视频有效, 我试了7/8个都没问题, 不过测试番剧视频时用alf+f会显示"没有找到可点击的页面对象", 然后直接退出连续hint模式了, hint也没有显示
这是我在首页随便点进去的番视频 https://www.bilibili.com/bangumi/play/ep475674?spm_id_from=333.1007.partition_recommend.content.click https://www.bilibili.com/bangumi/play/ep511802?spm_id_from=333.1007.partition_recommend.content.click
番剧页面点投币后,页面先立即显示了一个全屏的半透明遮罩层,过了很短时间才显示投币对话框,而 Vimium C 里 activateWithQueue 的延迟刚好落在这之间了,我想想怎么办吧。
发现一个小问题造成 第二次按 f 时没按我想的走。我用 withqueue 模式习惯了没注意到这部分写错了。下版本修。
番剧页面点投币后,页面先立即显示了一个全屏的半透明遮罩层,过了很短时间才显示投币对话框,而 Vimium C 里 activateWithQueue 的延迟刚好落在这之间了,我想想怎么办吧。
这个感觉不太好处理, 没想到好的办法可以忽略
发现一个小问题造成 第二次按 f 时没按我想的走。我用 withqueue 模式习惯了没注意到这部分写错了。下版本修。
OK