window,document.onload 몇가지 방법
로빈아빠
본문
window,document.onload 몇가지 방법
페이지에 자바스크립트 onload 방법의 기본은 아래와 같은 방법입니다.
window.onload = doit(); 나 <body onload="doit()">
window.onload = function(){ 시작시 실행될 내용 }
같은경우는 <body onload=""> 와 같이 사용 될 수 없습니다.
같이 사용하기 위해서는
function window::onload(){ 시작시 실행될 내용 }
를 사용 하면 됩니다. 그러면 <body onload="">가 먼저 실행되고, 이어서 window::onload()가 실행됩니다.
다른 방법으로는 prototype.js 를 이용합니다. 우선 prototype.js를 로딩시키고
을 하면 됩니다. 페이지 어디도 쓸 수 있습니다. 맨마지막에 넣을 필요가 없죠. 개인적으로 prototype.js를 로딩시킨다면 가장 좋은 것 같습니다.
다음 방법은 addEvent라는 함수를 정의 시킨다음 addEvent를 통해 로딩 시키는 방법 입니다.
페이지에 자바스크립트 onload 방법의 기본은 아래와 같은 방법입니다.
window.onload = doit(); 나 <body onload="doit()">
window.onload = function(){ 시작시 실행될 내용 }
같은경우는 <body onload=""> 와 같이 사용 될 수 없습니다.
같이 사용하기 위해서는
function window::onload(){ 시작시 실행될 내용 }
를 사용 하면 됩니다. 그러면 <body onload="">가 먼저 실행되고, 이어서 window::onload()가 실행됩니다.
다른 방법으로는 prototype.js 를 이용합니다. 우선 prototype.js를 로딩시키고
<script language=JavaScript type=text/JavaScript src=prototype.js></script> <script language="JavaScript"> Event.observe(window, 'load', function() { 시작시 실행될 내용 }); </script>
을 하면 됩니다. 페이지 어디도 쓸 수 있습니다. 맨마지막에 넣을 필요가 없죠. 개인적으로 prototype.js를 로딩시킨다면 가장 좋은 것 같습니다.
다음 방법은 addEvent라는 함수를 정의 시킨다음 addEvent를 통해 로딩 시키는 방법 입니다.
<SCRIPT type=text/javascript charset=euc-kr> function addEvent(target, en, func) { if (window.addEventListener) { if ((target == window) && (en.toLowerCase() == "load") && !window.opera && !(!document.all && document.childNodes && !navigator.taintEnabled)) document.addEventListener("DOMContentLoaded", func, false); else target.addEventListener(en, func, false); } else if (target.attachEvent) { if ((target == window) && (en.toLowerCase() == "load")) document.attachEvent("onreadystatechange", function(e) { if (document.readyState == "complete") func(); }); else target.attachEvent("on"+en, func); } else { var __func = eval("target.on"+en); eval("target.on"+en) = function() { func(); __func(); } } }; function _EventFuntion() { ......... } addEvent(window, "load", EventFuntion); </SCRIPT>
관련링크
댓글목록
등록된 댓글이 없습니다.