2011-05-04 2 views
0

오늘 아침에 클라이언트 사이트에 로그인했습니다 (차량 사용 등을 모니터링하는 인트라넷입니다). jQuery를 사이트의 괜찮은 부분 만 갑자기 이들 콘솔 오류와 함께 실패 것 :갑작스러운 jQuery 실패

jquery.js:1Uncaught SyntaxError: Unexpected token : www.mydomain.com:21Uncaught ReferenceError: jQuery is not defined www.mydomain.com:50Uncaught ReferenceError: $ is not defined

내가 지난 주에 변경 한 유일한 것은이 캐릭터 세트를 추가하고에 문서 타입을 변경한다 :

이것이 문제 일 수 있다고 생각하지만 header() 및 DOCTYPE을 제거해도 문제가 해결되지 않습니다. 어떤 아이디어가 계속 될 수 있습니까?

편집 1 : Chrome Inspector에서 아무것도로드하지 못했습니다.

편집 2 : 헤드 섹션

<head> 
    <title>Intranet</title> 
    <link href="/intranet/style/default.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="/intranet/js/jquery.js"></script> 
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> 
    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAb-ZNlr3CQw5Wb5StE921RxSRXiZIiheENMB8Q6Efuo3Cg-x8OhRoSG-6YA6TMItzJlsBO4hkest8jw" type="text/javascript"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> 

    <script type="text/javascript"> 
     //too much jQuery to post but it's always worked 
    </script> 
</head> 
+0

체크 아웃 방화 거안을 확인하십시오. jQuery가 아직로드되고 있습니까? 또한 PHP 코드와 doctype 선언 사이의 줄 바꿈을 제거하십시오. –

+0

Chrome Inspector로 확인, 내 질문 편집 – Dormouse

+0

'head' 섹션을 표시 할 수 있습니까? 외부 파일에서 오류를 throw하는 코드는 어디에 있습니까? –

답변

1

UTF-8로 인코딩 된 파일은 UTF-8로만 게재 할 수 있습니다. 파일 자체의 인코딩을 변경하지 않으면 서 컨텐츠 유형 인코딩을 변경하면 확실히 파기됩니다.

일부 편집자는 BOM (Byte order mark)으로 UTF-8을 저장하므로 많은 두통을 줄 수 있습니다. UTF-8 용 BOM을 사용할 필요가 없으므로 BOM없이 저장할 수있는 편집기를 사용하십시오.

위에서 언급 한 것처럼 Google AJAX API에서 라이브러리를로드 할 때 사용할 라이브러리의 전체 버전을 지정해야합니다. 그렇지 않으면 변경 사항이 새로운 유지 관리 릴리스에 도입되어 결국 중단 될 수 있습니다 기존 코드. 나는 이것을 경험에서 언급했다;)

또한 나는 당신의 코드에서 많은 불일치를 볼 수있다. 나는 다음과 같이 바꿀 수 : 당신은 또한 UTF-8 로케일을 사용으로 변경해야합니다 setlocale 사용하는 경우 : PHP에서 문자 인코딩을 변경할 때주의하는 것이 중요하다

<? header("Content-Type: text/html; charset=UTF-8"); ?> 
<!DOCTYPE html> 
<head> 
    <title>Intranet</title> 
    <link href="/intranet/style/default.css" rel="stylesheet" type="text/css" /> 
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" /> 

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script> 
    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAb-ZNlr3CQw5Wb5StE921RxSRXiZIiheENMB8Q6Efuo3Cg-x8OhRoSG-6YA6TMItzJlsBO4hkest8jw"></script> 

    <script type="text/javascript"> 
     //too much jQuery to post but it's always worked 
    </script> 
</head> 

한 가지 더. 즉. en_US ~ en_US.UTF-8 또는

0

당신의 문서 타입을 변경하면 사용자의 브라우저가 무엇 렌더링 모드 변경 가능성이 당신이 모드 전에 버릇의 일종에 있다면, 당신은 지금보다 표준에있을 수있다. 호환 모드로 변경됩니다 (또는 그 반대). doctype을 모두 제거하면 브라우저가 사용할 렌더링 모드를 추측하게되거나 기본 렌더링 모드를 사용합니다. Doctype을 원래 값으로 다시 변경하십시오.

관련 문제