>  기사  >  웹 프론트엔드  >  Window.onload 로드 문제 및 해결 방법(2부)_javascript 기술

Window.onload 로드 문제 및 해결 방법(2부)_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:50:27894검색

이전 기사에 이어 다른 방법:
1. IE에서는 onreadystatechange 이벤트에서도 판단할 수 있습니다.
http://www.thefutureoftheweb.com/blog/adddomloadevent
여기에 작성하세요. by Jesse Skinner 다양한 브라우저의 onload 문제를 해결하기 위해 독립적인 스크립트 기능이 만들어졌습니다.
http://img.jb51.net/jslib/adddomloadevent.js

코드 복사 코드는 다음과 같습니다:

/*
* (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig
* Dan Webb의 domready.js 프로토타입 확장에 특별히 감사드립니다.
* 및 Simon Willison의 addLoadEvent
*
* 자세한 내용은 다음을 참조하세요.
* http://www.thefutureoftheweb.com/blog/adddomloadevent
* http://dean.edwards .name/ weblog/2006/06/again/
* http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype
* http: //simon .incutio.com/archive/2004/05/26/addLoadEvent
*
*
* 사용 방법: 함수와 함께 addDOMLoadEvent를 한 번 이상 호출합니다. 예:
*
* function Something () {
* // 뭔가를 수행
* }
* addDOMLoadEvent(something)
*
* addDOMLoadEvent(function() {
* // 다른 작업을 수행 stuff
* })
*
*/

addDOMLoadEvent = (function(){
// 이벤트 함수 스택 생성
var load_events = [],
load_timer,
script,
done,
exec,
old_onload,
init = function () {
done = true

// 타이머 종료
clearInterval(load_timer);

// 스택에 있는 각 함수를 추가된 순서대로 실행합니다.
while (exec = load_events.shift())
exec(); >
if (script) script.onreadystatechange = '';
};

return function (func) {
// init 함수가 이미 실행된 경우 지금 이 함수를 실행하세요.
if (done) return func()

if (!load_events[0]) {
// for Mozilla/Opera9
if (document.addEventListener)
document.addEventListener("DOMContentLoaded", init, false)

// Internet Explorer의 경우
/*@cc_on @*/
/*@if(@_win32)
document. write("