visibilityChangeListener

Waits until the tab is focused, executing a callback function when it happens.

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greatest.deepsurf.us/scripts/480373/1283462/visibilityChangeListener.js을(를) 사용하여 포함하는 라이브러리입니다.

  1. // ==UserScript==
  2. // @name visibilityChangeListener
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  5. // @description Waits until the tab is focused, executing a callback function when it happens.
  6. // @author IgnaV
  7. // @grant none
  8. // ==/UserScript==
  9.  
  10. const visibilityChangeListener = (onFocus, onBlur, minTime = 0) => {
  11. let lastExecutionFocusTime = 0;
  12. let lastExecutionBlurTime = 0;
  13.  
  14. document.addEventListener('visibilitychange', function () {
  15. const currentTime = Date.now();
  16.  
  17. if (document.visibilityState === 'visible') {
  18. if (onFocus && currentTime - lastExecutionFocusTime >= minTime) {
  19. onFocus();
  20. lastExecutionFocusTime = currentTime;
  21. }
  22. } else if (onBlur && currentTime - lastExecutionBlurTime >= minTime) {
  23. onBlur();
  24. lastExecutionBlurTime = currentTime;
  25. }
  26. });
  27. };