Page 1 of 1

How to listen BrowserView's maximize,minimize,resize event?

PostPosted: 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

PostPosted: Tue Sep 07, 2021 2:41 am
by magreenblatt

Re: How to listen BrowserView's maximize,minimize,resize eve

PostPosted: 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

PostPosted: Tue Sep 07, 2021 9:13 am
by magreenblatt
What about fullscreenchange?

Re: How to listen BrowserView's maximize,minimize,resize eve

PostPosted: 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));
});