본문 바로가기

웹개발/jQuery

SCRIPT5009: 'JSON'이(가) 정의되지 않았습니다.

 

SCRIPT5009: 'JSON'이(가) 정의되지 않았습니다.
jquery-2.0.0.min.js, 줄 4 문자 2586
SCRIPT5009: 'jQuery'이(가) 정의되지 않았습니다.
jquery-migrate-1.1.1.js, 줄 6 문자 1
SCRIPT5007: 'jQuery' 속성 값이 null이거나 정의되지 않았습니다. Function 개체가 아닙니다.
homepage.js, 줄 14 문자 1
SEC7115: :visited와 :link 스타일은 색으로만 구별할 수 있습니다. 일부 스타일은 :visited에 적용되지 않았습니다. SCRIPT5009: '$'이(가) 정의되지 않았습니다.
homepage.js, 줄 208 문자 3

jQuery를 사용하여 코딩하다가 이러한 상황이 벌어지니까 참 난감했습니다.

첫번째 애러부터 차근 차근 해결해 나가봅시다!

1. 'JSON'이(가) 정의되지 않았습니다.
IE9 이하에서 JSON 함수를 인식하지 못해서 생기는 문제입니다.

아래 링크를 타고 가서, Download Zip을 선택합니다.

이 파일들 중 나머지는 필요 없고, json2.js 만 jQuery 호출 위에 넣어주시면 됩니다.

이와 함께 jQuery도 최신 버전을 항상 유지하도록 아래의 코드를 함께 삽입해 주세요.

 <script type="text/javascript" src="lib/json2.js"></script>
 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

 

이렇게 수정했는데, SCRIPT5009: 'jQuery'이(가) 정의되지 않았습니다. 가 아직도 보이는군요.

일반적으로 jQuery 동작은 jQuery(document).ready(function() {  ... }); 안에 선언하고,

함수는 밖에 선언하는 경우가 많습니다. 아래 처럼요. 

 jQuery(document).ready(function() { 
   ...
 });
function doAjax(param1) {
  $.ajax({
   ...
}); 

이렇게 되면, jQuery가 ready되기 전에, 일반 Javascript 함수(?)에서 $.ajax를 인식하지 못해서 생깁니다.

ajax뿐 아니라 $.fancybox .. 등등 많겠죠.

자, 그럼 저 함수들을  jQuery(document).ready(function() {   }); 안으로 넣으면 왠지 해결 될 것 같군요.

하지만 이렇게 수정하면 함수로 인식을 못합니다.

doAjax = function(param1) { } 와 같은 형태로 바꾸어 주시면 됩니다.

 

 jQuery(document).ready(function() { 
   ...
  doAjax = function(param1) {
    $.ajax({
     ...
  });
 });

 

 

 

'웹개발 > jQuery' 카테고리의 다른 글

내용 크기가 변할때 iframe 자동 리사이즈 하기  (0) 2015.03.22