new VisibilityChangeObserver()
browser 의 visibility 변화를 감지
- Source:
 - See:
 
Throws:
- 
        
browser 에서 지원하지 못하는 경우 - throw new Error('VisibilityChange 지원되지 않는 브라우저입니다.');
 - Type
 - Error
 
Example
import { VisibilityChangeObserver, VISIBILITY_EVENTS } from '@nonoll/code-snippet/observer';
const createElement = ({ tag = 'div', id = '', style = '', value = '', text = '' }) => {
  const doc = window.document;
  const target = doc.createElement(tag);
  target.setAttribute('id', id);
  target.setAttribute('style', style);
  target.setAttribute('value', value);
  if (text) {
    target.textContent = text;
  }
  return target;
}
let observer;
const forExample = () => {
  if (observer) {
    console.log('already example');
    return;
  }
  const doc = window.document;
  observer = new VisibilityChangeObserver();
  observer.on(VISIBILITY_EVENTS.CHANGE, ({ isHidden, isShow }) => {
    console.log('change', isHidden, isShow);
  });
  observer.attach();
  observer.emit(VISIBILITY_EVENTS.GET_STATUS);
  const statusButton = createElement({ tag: 'button', text: 'status' });
  const openButton = createElement({ tag: 'button', text: 'window open' });
  doc.body.appendChild(statusButton);
  doc.body.appendChild(openButton);
  statusButton.addEventListener('click', e => {
    e.preventDefault();
    console.log('statusButton clicked');
    if (!observer) {
      return;
    }
    // observer.emit(VISIBILITY_EVENTS.GET_STATUS);
    const { isHidden, isShow } = observer.getStatus();
    console.log('getStatus', isHidden, isShow);
  });
  openButton.addEventListener('click', e => {
    e.preventDefault();
    console.log('openButton clicked');
    if (!observer) {
      return;
    }
    const browser = window.open('https://nonoll.github.io/code-snippet/');
    if (!browser) {
      console.error('팝업이 차단되어 있습니다.');
    }
  });
}
forExample();
    
Extends
Members
- 
    
<static, constant> HIDDEN_METHOD_NAME :String
 - 
    
    
browser 상의 visibility hidden 시점의 event 명
Type:
- String
 
 - 
    
<static, constant> VENDOR_PREFIX :String
 - 
    
    
getVendorPrefix 의 값
Type:
- String
 
 - 
    
<static, constant> VISIBILITY_EVENT_NAME :String
 - 
    
    
browser 상의 visibilitychange event 명
Type:
- String
 
 
Methods
- 
    
<static> getVendorPrefix()
 - 
    
    
실행된 browser 기준으로, visibilityChange event 에 맞는 vendorPrefix 반환
Returns:
- Type
 - String
 
 - 
    
<static> hiddenMethodName()
 - 
    
    
visibility hidden event 명 반환
Returns:
- Type
 - String
 
 - 
    
<static> isSupport()
 - 
    
    
visibility change 지원 여부 반환
Returns:
- Type
 - boolean
 
 - 
    
<static> visibilityEventName()
 - 
    
    
visibilitychange event 명 반환
Returns:
- Type
 - String
 
 - 
    
attach()
 - 
    
    
이벤트 감지 설정
Returns:
 - 
    
destroy()
 - 
    
    
destory
Returns:
 - 
    
detach()
 - 
    
    
이벤트 감지 해제
Returns:
 - 
    
emit(eventName, values)
 - 
    
    
이벤트 전파
Parameters:
Name Type Argument Description eventNamestring valuesArray.<any> <repeatable> 
- Inherited From:
 - Overrides:
 - Source:
 
Returns:
- Type
 - EventEmitter
 
 - 
    
fire(eventName, values)
 - 
    
    
이벤트 전파
Parameters:
Name Type Description eventNamestring valuesany - Inherited From:
 - Overrides:
 - Source:
 
Returns:
- Type
 - EventEmitter
 
 - 
    
getStatus()
 - 
    
    
현재 상태를 반환
Returns:
- Type
 - IVisibilityStatus
 
 - 
    
off(eventName [, listener])
 - 
    
    
이벤트 감지 해제
Parameters:
Name Type Argument Description eventNamestring listenerTypeVoidFunction <optional> 
- Inherited From:
 - Overrides:
 - Source:
 
Returns:
- Type
 - EventEmitter
 
 - 
    
on(eventName [, listener] [, context])
 - 
    
    
이벤트 감지 등록
Parameters:
Name Type Argument Default Description eventNamestring listenerTypeVoidFunction <optional> 
noop context* <optional> 
- Inherited From:
 - Overrides:
 - Source:
 
Returns:
- Type
 - EventEmitter
 
 - 
    
once(eventName [, listener] [, context])
 - 
    
    
이벤트 1회 감지 등록
Parameters:
Name Type Argument Default Description eventNamestring listenerTypeVoidFunction <optional> 
noop context* <optional> 
- Inherited From:
 - Overrides:
 - Source:
 
Returns:
- Type
 - EventEmitter
 
 
Events
- 
    
VISIBILITY_EVENTS
 - 
    
    
VisibilityChange Event Types
- Source:
 
Properties:
Name Type Description CHANGEString 변경 시점
GET_STATUSString 현재 상태값 체크