2009-11-03 15 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; 
}; 

はなぜFirefoxは言うん:

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

UPDATE

のFirebugはページのためにオンになっているときにエラーがのみ表示されます。

+2

作品罰金 - http://jsbin.com/ifuhu/edit –

+2

あなたの問題を解決してしまったが、私はシャドウなる(自分のを宣言する前にネイティブ 'map'の実装があるかどうかを確認することをお勧めしますネイティブのものが利用可能だった場合)、現代のブラウザによって提供されるネイティブの実装は*本当に*はるかに高速です。 – CMS

答えて

9

完全にXHTMLに準拠していると主張しているHTMLページでJavascriptコードを使用しています。したがって、XHTMLタグの先頭と解釈されるため、<文字はJavascriptに表示できません。

これを解決するにはいくつかの方法があります。

DOCTYPEを変更してXHTMLにすることはできません。
JavaScriptを<![CDATA[セクションに囲むことができます。
Javascriptを別の.jsファイルに移動することができます。
が出現するたびに、&ltと、&&amp;となるようにエスケープすることができます。このオプションはお勧めしません。それはあなたのコードを読むことができなくなり、ほとんど確実にIEで動作しません。

+1

ありがとう。 –

+0

私はDOCTYPEも試したと思っていましたが、そうは思いません。 –

1

あなたのエラーはこのコードにない可能性がありますが、それ以上のものはエラーを引き起こします。したがって、このコードでエラーを見つける代わりに、このエラーを引き起こす可能性がある不正なHTMLまたはjavascriptを上に見てください。

+0

HTMLやその他のJavascriptはありません。 –

0

私のために働きます。完全なファイルを投稿し、スクリプトタグを使用していることを確認してください。

私はvalidating pastebin fileを投稿しました(Chetan'sは技術的に有効ではありませんでした)、Firebugでうまく動作します。だから私はあなたが働かないコードの検証の完全なページに戻ってくることをお勧めします。

+0

これは、HTMLタグとスクリプトタグのさまざまな組み合わせを除いて、完全なファイルです。私はちょうどスクリプトタグで試した。私はdoctypeの有無にかかわらず、本体のスクリプトタグだけを含む完全なHTMLページを試しました。 –

0

「test.js」として以下のHTMLとテキストを使用すると、Firebugでもエラーは発生しません。

<html> 
<head> 
    <script type="text/javascript" src="test.js"></script> 
</head> 
<body> 
    test 
</body> 
</html> 
関連する問題