javascript - Electron javascript 仅在 devtools 打开时工作
问题描述
我有一个利用电子和 puppeteer 的程序。当用户向下滚动到电子应用程序页面的底部时,puppeteer 被触发向下滚动以加载更多列表项,这些列表项依次加载到电子应用程序页面上。在一个 html 电子页面上,脚本有效。它使用一个函数来加载 10 个项目,添加一个滚动事件侦听器,当触发时将使用上述函数加载另外 10 个项目。但是在不同的 html 电子页面上,使用相同的函数它将加载十个不同的项目,添加滚动事件侦听器并尝试在用户滚动时继续尝试加载十个。问题是它在前十个加载,然后在用户滚动到底部时无法加载到其他十个,除非开发工具在电子应用程序中打开。我已经通过在用户滚动时创建警报窗口对其进行了测试,因此我知道事件侦听器已正确附加到文档中。我在控制台中没有收到错误,因为它在控制台打开时工作。
容器.js
let lastContainer, maxScrollY = getMaxScrollY(), loading = false, newPage = true, songData; //These reset after a new page has loaded
const createContainers = (page, createContainer) => {
const conPerCycle = 10;
containers(conPerCycle, createContainer, page); // Initial Loader; Loads data, creates container, adds data to container
document.addEventListener('scroll', (e) => {
if (Math.floor(window.scrollY) == maxScrollY && !loading) {
newPage = false;
containers(conPerCycle, createContainer, page); // Triggered Loader; Loads data, creates container, adds data to container
}
});
};
解决方案
Math.floor(window.scrollY)
不相等maxScrollY
,因为我正在使用它少了一个像素Math.floor
,将其更改为Math.ceil
并开始工作,案例关闭!
推荐阅读
- javascript - Javascript 数组从练习开始
- azure - 使用 Azure KeyVault 引用时出现 InvalidSyntax 错误
- java - 将 RabbitListenerExceptionHandler 与 Micronaut 全局 ExceptionHandler 映射
- mongodb - Typegoose 和 Mongoose - 保存模式类型的嵌套列表时,转换为 ObjectId 的值失败
- ios - 让麦克风忽略来自 AVSpeechSynthesizer 的音频
- r - 在ggplot中删除geom_area周围的边框
- amcharts - amchart4 跳过数据中的列
- python - Beautifulsoup 网页抓取丢失的表格
- javascript - 使用 sass 修改 react-bootstrap 的正确方法是什么?
- c# - 使用 ASP.NET MVC 显示条形图