手动点击按钮后会跳转到整个网页的底部,并且这个按钮会恢复到默认状态?

作者站长头像
站长
· 阅读数 9

我给一个网页写了一个扩展程序,用的原生js。 因为需要点击按钮的内容是用ajax加载出来的,我在网页中的翻页按钮加了一个点击事件,用计时器setinterval判断局部加载的内容是否完成来替代onload函数。

bug:一开始还没有问题,但是翻页次数多了以后,手动点击局部加载页面的按钮后会跳转到整个网页的底部,并且这个按钮会恢复到默认状态。这个按钮只有选中功能

处理方法:setinterval设置了次数,也在之后用clearinterval清理,赋值为null。翻页每次我也会用removeEventListener先移除再添加。其它地方我也只是用document.getElementsByClassName获取对象,调用click函数来点击按钮,达到选中效果。 因为是在手机上提的问题,无法提供源码,实在不好意思啊 环境:win10,edge,没有其它扩展程序补充:扩展程序没写自动定位到网页某个位置的功能,原网页也没有自动定位的功能 期望:给个思路,或者这方面bug分享,当然如果能直接指出问题所在就更好了,先行谢过各位大佬

回复
1个回答
avatar
test
2024-07-15

bug原因:1.翻页按钮所绑定的点击事件,触发的计时器是先定义全局变量再实例化。虽然有清理但不能点击过快,否则无法确保每个计时器都被清理掉2.判断ajax内容加载完成用的是innerText,它不会返回css隐藏内容解决方法:innerText改为textContent。计时器调用前先clear掉。或者用数组记录计时器id,清理时遍历数组

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容