AppJS窗口调整大小后按钮点击事件失效怎么办?

迷人的殿原 阅读 20

折腾了一下午AppJS,遇到个怪问题。我用app.window创建窗口后,给按钮绑定了点击事件,正常显示时能触发。但只要在窗口resize事件里调整过大小,按钮就完全没反应了。

代码是这样写的:


const win = app.window.create('index.html', { width: 800, height: 600 });
win.on('resize', () => {
  win.setSize(win.width + 100, win.height); // 调整大小后问题出现
});

document.querySelector('#myButton').addEventListener('click', () => {
  alert('点击了'); // 这个提示在窗口调整后无法弹出
});

我试过把事件绑定移到resize回调里,也试过用app.once('ready')包裹,但控制台一直报Cannot read properties of null。是不是窗口重绘后DOM被重置了?有没有什么稳妥的绑定方式?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
春芳
春芳 Lv1
你这个是窗口resize时DOM可能还没准备好,事件绑定被清掉了。直接在resize回调里用setTimeout延迟绑定就行。

win.on('resize', () => {
setTimeout(() => {
const btn = document.querySelector('#myButton');
if (btn) btn.click(); // 或重新绑定
}, 100);
});


或者干脆把事件绑定逻辑抽成函数,在页面load和resize后都调一次,差不多就行。
点赞 1
2026-02-12 12:10