Electron javascript 仅在 devtools 打开时工作
Electron javascript only working when devtools is open
我有一个利用 electron 和 puppeteer 的程序。当用户向下滚动到电子应用程序页面的底部时,puppeteer 会被触发向下滚动以加载更多列表项,这些列表项会依次加载到电子应用程序页面上。在一个 html 电子页面上,该脚本有效。它使用一个函数加载 10 个项目,添加一个滚动事件侦听器,当触发时将使用上述函数加载另外 10 个项目。但是在不同的 html 电子页面上,使用相同的功能它将加载十个不同的项目,添加滚动事件侦听器并尝试在用户滚动时继续尝试加载十个。问题是当用户滚动到底部时,它会加载前十个,然后无法加载其他的,除非开发工具在电子应用程序中打开。我已经通过在用户滚动时创建警报 windows 对其进行了测试,因此我知道事件侦听器已正确附加到文档中。我在控制台中没有收到任何错误,因为它在控制台打开时有效。
Containers.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
就开始工作了,结案了!
我有一个利用 electron 和 puppeteer 的程序。当用户向下滚动到电子应用程序页面的底部时,puppeteer 会被触发向下滚动以加载更多列表项,这些列表项会依次加载到电子应用程序页面上。在一个 html 电子页面上,该脚本有效。它使用一个函数加载 10 个项目,添加一个滚动事件侦听器,当触发时将使用上述函数加载另外 10 个项目。但是在不同的 html 电子页面上,使用相同的功能它将加载十个不同的项目,添加滚动事件侦听器并尝试在用户滚动时继续尝试加载十个。问题是当用户滚动到底部时,它会加载前十个,然后无法加载其他的,除非开发工具在电子应用程序中打开。我已经通过在用户滚动时创建警报 windows 对其进行了测试,因此我知道事件侦听器已正确附加到文档中。我在控制台中没有收到任何错误,因为它在控制台打开时有效。
Containers.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
就开始工作了,结案了!