我通过 Chrome 使用的一个网站(pixiv.net),我可以通过按空格键向下滚动页面直到页面加载完毕。加载完毕后,我可以使用箭头键和 PageDown/PageUp 键滚动,但不能使用空格键。如果我按Tab
两次,页面会再次响应空格键,但这会导致选项卡跳转到页面的最底部。即使我禁用扩展程序和实验,此行为仍然存在。
我有坦普猴扩展已安装并且知道如何使用它,但在我使用它来修复此行为之前,我需要知道页面正在做什么导致此行为,或者至少知道如何诊断/调试问题。
编辑:清除缓存没有帮助。
我编写了一个 TamperMonkey 脚本,它为DomContentLoaded
和添加了事件侦听器load
。最初的意图是让它们将焦点重新放到页面中的元素上,但是,似乎无论事件侦听器函数做什么,它都能在 80% 的时间内解决问题(也就是说,明确地将焦点放在页面的元素上 20% 的时间没有用,而只有放入调试语句写入控制台 80% 的时间才有效)。我想知道这是否是某种时间/竞争问题。
编辑2:清除所有 pixiv.net cookies 也无法解决问题。
我已经使用 Chrome 版本 64.0.3278.0(不稳定)进行测试,问题仍然存在。
答案1
我使用 Chrome 访问了 pixiv,并在加载期间和加载后滚动浏览了几个页面。我使用的是版本 62.0.3202.94(官方版本)(64 位)。使用鼠标、向上翻页/向下翻页、箭头或空格键滚动都没有问题。
检查计算机上的 Chrome 是否已更新。此外,清除历史记录以重新开始。
答案2
事实证明,当问题出现时,这是由于其中一个iframe
s 从父级/顶级文档中窃取了焦点(通过进入document.activeElement
JavaScript 控制台显示)。我猜想 s 中提供的某些广告iframe
会窃取焦点,而其他广告则不会,因此广告中的随机性导致问题间歇性出现。