[javascript] window.onload 대 <body onload =“”/>

window.onload이벤트와 태그 의 onload이벤트의 차이점은 정확히 무엇입니까 body? 언제 어떤 것을 어떻게 사용해야합니까?



답변

window.onload = myOnloadFunc그리고 <body onload="myOnloadFunc();">사용하는 다른 방법입니다 같은 이벤트 . 사용 window.onload은 덜 눈에 띄지 않습니다-HTML에서 JavaScript를 가져옵니다.

모든 일반적인 JavaScript 라이브러리 인 Prototype, ExtJS, Dojo, JQuery, YUI 등은 문서가로드 될 때 발생하는 이벤트에 대한 훌륭한 래퍼를 제공합니다. 윈도우 onLoad 이벤트를 수신하고 이에 반응 할 수 있지만 모든 리소스가 다운로드 될 때까지 onLoad가 시작되지 않으므로 마지막 큰 이미지가 페치 될 때까지 이벤트 핸들러가 실행되지 않습니다. 어떤 경우에는 정확히 원하는 것입니다. 다른 경우에는 DOM이 준비되었을 때 청취하는 것이 더 적절하다는 것을 알 수 있습니다.이 이벤트는 onLoad와 비슷하지만 이미지 등을 다운로드하지 않고 발생합니다.


답변

차이는 없지만 둘 다 사용해서는 안됩니다.

많은 브라우저에서 window.onload모든 이미지가로드 될 때까지 이벤트가 트리거되지 않습니다. 원하는 것은 아닙니다. 표준 기반 브라우저에는 이벤트 DOMContentLoaded가 일찍 발생하지만 IE에서 지원하지 않습니다 (이 답변을 작성할 당시). 크로스 브라우저 DOMContentLoaded 기능을 지원하는 Javascript 라이브러리를 사용하거나 사용 가능한 잘 작성된 함수를 찾는 것이 좋습니다. jQuery ‘s $(document).ready()가 좋은 예입니다.


답변

window.onload몸없이 일할 수 있습니다. 스크립트 태그 만있는 페이지를 작성하여 브라우저에서여십시오. 페이지에 본문이 없지만 여전히 작동합니다 ..

<script>
  function testSp()
  {
    alert("hit");
  }
  window.onload=testSp;
</script>


답변

일반적으로 > 이벤트를 사용 하지 않는 것이 좋습니다 <body onload="". 가능한 한 행동을 콘텐츠와 분리하는 것이 더 깨끗하다고 ​​생각합니다.

즉, 바디 온로드를 사용하면 속도가 약간 향상되는 경우가 있습니다 (보통 나에게는 매우 드 rare니다).

나는 일반적으로 <head내 페이지 의 >에 다음과 같은 것을 넣도록 프로토 타입을 사용하고 싶습니다 .

document.observe("dom:loaded", function(){
  alert('The DOM is loaded!');
});

또는

Event.observe(window, 'load', function(){
  alert('Window onload');
});

위의 내가 여기서 배운 트릭 입니다. HTML 외부의 첨부 이벤트 핸들러 개념을 매우 좋아합니다.

(코드의 철자 실수를 수정하도록 편집하십시오.)


답변

‘객관적인 질문에 대한 너무 많은 주관적인 답변. “명백하지 않은”JavaScript는 gotos를 사용하지 않는 기존 규칙과 같은 미신입니다. 누군가의 트렌디 한 종교적 신념에 따르지 않고 목표를 안정적으로 달성하는 데 도움이되는 방식으로 코드를 작성하십시오.

다음을 발견 한 사람 :

 <body onload="body_onload();">

지나치게 산만 해지는 것은 지나치게 소박하며 우선 순위가 정해져 있지 않습니다.

일반적으로 JavaScript 코드를 별도의 .js 파일에 넣지 만 HTML에서 이벤트 핸들러를 연결하는 것은 번거롭지 않습니다.


답변

window.onload-모든 DOM, JS 파일, 이미지, Iframe, 확장 및 기타가 완전히로드 된 후 호출됩니다. $ (window) .load (function () {})와 같습니다.

body onload=""-DOM이로드되면 호출됩니다. $ (document) .ready (function () {})와 같습니다.


답변

차이 가 없습니다

원칙적으로 두 가지를 모두 사용할 수 있습니다 (한 번에 하나씩!-)

그러나 가독성과 HTML 코드의 청결을 위해 나는 항상 window.onload를 선호합니다! o]