2009-11-03 2 views
6

이 코드를 example에서 복사했습니다. 나는 그것을 100 번 읽었다. for 루프에서 Javascript가 잘 형성되지 않았습니다.

Array.prototype.map = function(fn) { 
    var r = []; 
    var l = this.length; 
    for(var i = 0; i < l; i++) { 
     r.push(fn(this[i])); 
    } 
    return r; 
}; 

왜 파이어 폭스 말 않습니다

not well-formed 
file:///some/path.html       Line: 5 
    for(var i = 0; i < l; i++) { 
    -------------------^ 

UPDATE 방화범이 페이지를 켤 때

오류 만 표시됩니다.

+2

작품 잘 - http://jsbin.com/ifuhu/edit –

+2

귀하의 문제가 해결되었다, 그러나 나는 그림자 것이다 (자신을 선언하기 전에 기본'지도'구현이 있는지 확인하는 것이 좋습니다 것입니다 기본 브라우저가 제공되는 경우), 현대 브라우저가 제공하는 기본 구현은 실제로는 훨씬 빠릅니다. – CMS

답변

9

HTML 페이지에서 XHTML을 완벽하게 준수한다고 주장하는 자바 스크립트 코드를 사용하고 있습니다. 따라서 < 문자는 Javascript에 나타날 수 없습니다. XHTML 태그의 시작으로 해석되기 때문입니다.

이 문제를 해결하는 데는 여러 가지 방법이 있습니다.

DOCTYPE을 변경하여 XHTML이 아닌 것으로 설정할 수 있습니다.
<![CDATA[ 섹션에 자바 스크립트를 동봉 할 수 있습니다.
Javascript를 별도의 .js 파일로 옮길 수 있습니다.
이 발생할 때마다 &lt 및 모든 &&amp;으로 탈출 할 수 있습니다. 이 옵션은 권장하지 않습니다. 코드를 읽을 수 없도록 만들 것이고 IE에서 거의 작동하지 않을 것입니다.

+1

굉장합니다. 감사. –

+0

나는 DOCTYPE도 시도했다고 생각했지만 그렇지 않다고 생각합니다. –

1

오류는이 코드에 없지만 오류가 발생하면 그 위에 오류가 발생합니다. 따라서이 코드에서 오류를 찾는 대신 위의 오류를 일으킬 수있는 잘못된 HTML 또는 javascript를 찾으십시오.

+0

HTML 또는 기타 자바 스크립트가 없습니다. –

0

저에게 맞습니다. 전체 파일을 게시하고 스크립트 태그를 사용하고 있는지 확인하십시오.

나는 (Chetan 's는 기술적으로 유효하지 않은) validating pastebin file을 게시했고, 방화범이 끌려도 잘 작동한다. 따라서 나는 작동하지 않는 유효성 검사 코드의 전체 페이지를 다시 제안합니다.

+0

HTML과 스크립트 태그의 다양한 조합을 제외하고는 전체 파일입니다. 나는 단지 스크립트 태그로 시도했다. Doctype의 유무에 관계없이 본문에 스크립트 태그 만 포함 된 전체 HTML 페이지를 사용해 보았습니다. –

0

다음 HTML과 텍스트를 "test.js"로 사용하면 Firebug에서도 오류가 발생하지 않습니다.

<html> 
<head> 
    <script type="text/javascript" src="test.js"></script> 
</head> 
<body> 
    test 
</body> 
</html> 
관련 문제