How to listen BrowserView's maximize,minimize,resize event?
Posted:
Tue Sep 07, 2021 1:18 am
by liulun
Is there a way to listen BrowserView's maximize,minimize,resize event?
Or developers must use native system API to do this job?
Developers use Native system API must provide diffrent code for diffrent OS, It is difficult.
When user double click `-webkit-app-region: drag` area,the window will be maximized.
I want to listen maximized event to do somthing.
Re: How to listen BrowserView's maximize,minimize,resize eve
Posted:
Tue Sep 07, 2021 2:41 am
by magreenblatt
Re: How to listen BrowserView's maximize,minimize,resize eve
Posted:
Tue Sep 07, 2021 7:41 am
by liulun
Thanks very much
But the `windows.WindowState` is a chrome extension api, and developer can not addEventListener to listen it's change event.
Use setInterval ?
`document.addEventListener("visibilitychange", function() {})` can not get the maximize event.
Re: How to listen BrowserView's maximize,minimize,resize eve
Posted:
Wed Sep 08, 2021 1:07 am
by liulun
Thanks very much.
I use these codes to finish the job
- Code: Select all
//防抖
let debounce = (fn, span = 680) => {
let timer = null;
return function () {
clearTimeout(timer);
timer = setTimeout(() => fn.apply(this, arguments), span);
};
};
window.addEventListener("load", () => {
let btnArr = document.querySelector(".titleTool").children;
btnArr[0].addEventListener("click", () => {
horse.window.minimize();
});
btnArr[1].addEventListener("click", () => {
if (btnArr[1].classList.contains("horse-restore")) {
horse.window.restore();
} else {
horse.window.maximize();
}
});
btnArr[2].addEventListener("click", () => {
horse.window.close();
});
let maximizeLogic = () => {
if (
window.outerHeight === screen.availHeight &&
window.outerWidth === screen.availWidth
) {
btnArr[1].classList.remove("horse-maximize");
btnArr[1].classList.add("horse-restore");
} else {
btnArr[1].classList.remove("horse-restore");
btnArr[1].classList.add("horse-maximize");
}
};
maximizeLogic();
window.addEventListener("resize", debounce(maximizeLogic));
});