2010-04-13 4 views
1

나는 javascript와 jquery에서 사이트를 개발 중이다. 때로는 새로 고침을 할 때마다 방화범 소리가 다른 임의의 오류가 발생합니다. 거래는 뭐니?임의의 Javascript 오류는 무엇입니까?

편집 : 나는 변수와 같은 오류를 받고 있어요 내가 다시 새로 고칠 때 명확하게, 오류가 사라하고 작업 때 ..

파이어 폭스 V3.5.5 방화범 V.를 사용하여 정의되지 않은 1.5.3이고 jQuery 1.4.2에서 주로 작업하고 있습니다.

+1

예제 코드 및 예제 오류와 같은 약간의 컨텍스트를 제공 할 수 있습니까? 아무도 다른 방법으로 도움을 줄 수 없습니다. – Kinlan

+0

어디서 오류가 발생합니까? – animuson

+1

* 많은 * 더 많은 정보가 필요합니다! 처럼; 무엇을하려고하는 페이지가 무엇입니까? JS는 무엇을 실행하고 있습니까? 오류가 무엇입니까? 어떤 버전의 firebug/jquery/firefox를 실행하고 있습니까? – Mathew

답변

3

확인을. 이 같은 일반적인 질문에 대한 합리적인 솔루션을 제공하기 위해 더 많거나 적은 불가능하지만, 난 그냥 내 2 센트 '가치를 추가 할 것입니다 : 여러 스크립트를 포함한에서 "정의되지 않은 변수" 오류

한 가지 가능한 소스로 제공을하는 동일한 순서로 항상로드되고 실행되는 것은 아닙니다. 한 스크립트에서 변수를 정의하고 (그 스크립트 declare.js이라고 부르 자고) 다른 변수 (use.js라고 가정 해 봅시다)에서 use.jsdeclare.js 전에 실행되면 그러한 오류가 발생합니다. 스크립트가 다른 방향으로 실행되면 모든 것이 잘 보입니다.

매우 흥미로운 주제에 대해 자세히 알아 보려면 다음 페이지를 참조하십시오. Steve Souders의 저서 Even faster web sites, O'Reilly 발행. 보다 구체적으로, 비 차단 스크립트 로딩에 대한 장을보십시오.

+0

매우 재미있게 보내 주셔서 감사합니다. –

1

가장 일반적인 원인은 이 실행되기 전에 DOM이로드되기 때문에 모든 HTML 요소가 DOM 트리에서 사용 가능하기 전에, 그 결과로 document.getElementById(id) 및 jQuery의 $(selector)과 같은 간단한 호출이 정의되지 않은 요소를 반환 할 수 있습니다. 때때로 작동한다는 것은 순수한 우연과 타이밍의 문제입니다.

DOM로드시 이후 페이지로드 중에 실행될 예정이며 DOM 트리 요소의 가용성에 의존하는 자바/jQuery 코드가 실제로 실행되어야합니다. . 일반 바닐라 JS에서 당신은 그렇게 할 수 있습니다 :

window.onload = function() { 
    document.getElementById(someId); 
} 

및 jQuery를에을 :

$(document).ready(function() { 
    $(someSelector); 
}); 
관련 문제