2012-12-16 3 views
0

내가 일하고 코드를 사용하지 않고하지 않습니다 내가 body 태그의 onload 이벤트와 함께 사용하면 코드가 완벽하게 작동 this-자바 스크립트 onload 이벤트

var winW; 
if (document.body && document.body.offsetWidth) { 
winW = document.body.offsetWidth; 
} 
if (document.compatMode=='CSS1Compat' && 
    document.documentElement && 
    document.documentElement.offsetWidth) { 
winW = document.documentElement.offsetWidth; 
} 
if (window.innerWidth && window.innerHeight) { 
winW = window.innerWidth; 
} 
if (winW = 1265) { 
function setPosition() 
{ 
document.getElementById("wblogo").style.left="1050px"; 
} 
} 

입니다.

하지만이 페이지를로드 할 때 사용하고 싶습니다. 그래서 다음 코드를 사용했습니다.

var winW; 
if (document.body && document.body.offsetWidth) { 
winW = document.body.offsetWidth; 
} 
if (document.compatMode=='CSS1Compat' && 
    document.documentElement && 
    document.documentElement.offsetWidth) { 
winW = document.documentElement.offsetWidth; 
} 
if (window.innerWidth && window.innerHeight) { 
winW = window.innerWidth; 
} 
if (winW = 1265) { 
document.getElementById("wblogo").style.left="1050px"; 
} 

그러나이 코드는 작동하지 않습니다. 도와주세요.

답변

3

내 생각에 onload을 제거하면 문서의 head 섹션에 스크립트가 남았습니다. 작업하려는 요소 (document.body, wblogo 요소) 은 아직 존재하지 않으므로 코드는 상호 작용할 수 없습니다. onload을 사용할 때 코드가 즉시 실행되지 않고 대신 모든 이미지 등이로드 된 후 페이지로드 사이클에서 매우이 늦 으면 요소가 존재합니다.

대신에, 단지 닫는 </body> 태그 전에 문서의 script 태그에 코드를 넣어. 그렇게하면 작업하려는 요소가 존재하게됩니다.

더 :

+0

고맙습니다. 이것은 나를 도왔다! !! – sdnr1

+0

@ sdnr1 : 좋은 거래! –