미디어위키:Gadget-SiteDesignReady.js

식물 vs 좀비 위키
둘러보기로 이동 검색으로 이동

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
( function () {
	'use strict';

	function waitForCriticalAssets() {
		var waits = [];

		if (
			document.fonts &&
			document.fonts.ready
		) {
			waits.push(
				document.fonts.ready.catch(
					function () {}
				)
			);
		}

		document.querySelectorAll(
			'img.pvz-design-critical'
		).forEach( function ( image ) {
			if ( image.complete ) {
				return;
			}

			waits.push(
				new Promise( function ( resolve ) {
					image.addEventListener(
						'load',
						resolve,
						{ once: true }
					);

					image.addEventListener(
						'error',
						resolve,
						{ once: true }
					);
				} )
			);
		} );

		return Promise.all( waits );
	}

	function revealSiteDesign() {
		window.clearTimeout(
			window.pvzSiteDesignRevealTimer
		);

		window.requestAnimationFrame(
			function () {
				window.requestAnimationFrame(
					function () {
						document.documentElement
							.classList.add(
								'pvz-site-ready'
							);
					}
				);
			}
		);
	}

	function finishSiteDesign() {
		waitForCriticalAssets().then(
			revealSiteDesign,
			revealSiteDesign
		);
	}

	if ( document.readyState === 'loading' ) {
		document.addEventListener(
			'DOMContentLoaded',
			finishSiteDesign,
			{ once: true }
		);
	} else {
		finishSiteDesign();
	}
}() );