2011-06-22 15 views
12

JavaScriptコードを圧縮して、私のサイトのトラフィックを減らそうとしています。それは正常に動作していますが、今私は解決できないエラーに遭遇しました。JavaScriptの予期しない識別子

私は1つのラインに私のAjaxの機能を回し:

function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById("content").innerHTML=xmlhttp.responseText;}}xmlhttp.open("GET","data/"+id+".html",true);xmlhttp.send();} 

しかし、クロムコンソールは、このライン上の予期しない識別子がある私に語りました。 Firefoxは、この行にセミコロンがないことを示しています。

私は何が間違っているのか把握しようとしていますが、エラーを見つけることができません。誰かがこれを手伝ってくれますか?

+3

解凍するのに役立ちます:http://jsbeautifier.org/ – JohnP

答えて

30

はい、}が多すぎます。とにかく、自分自身を圧縮するとエラーが発生する傾向があります。

function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
     document.getElementById("content").innerHTML = xmlhttp.responseText; 
    } 
} // <-- end function? 
xmlhttp.open("GET", "data/" + id + ".html", true); 
xmlhttp.send(); 
} 

代わりにClosure Compilerを使用してください。

+4

Objectでカンマが見つからなかった場合にも同じエラーが発生することがよくあります。 –

+0

オブジェクトのプロパティの後、特に変数/関数をオブジェクトの内部に追加/移動すると、それらはオブジェクトのプロパティの後に欠落する傾向があります。 – totymedli

3

どちらかresponseText;}}の端からまたはライン

8

の端から} 1を削除し、私はhttp://jsbeautifier.org/の使用をお勧めします - あなたはそれにあなたのコードスニペットを貼り付け、プレス美化場合、エラーがすぐに表示されます。

2

コードに余分な中括弧があるようです。このような場合には

function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
     document.getElementById("content").innerHTML = xmlhttp.responseText; 
    } 
// extra bracket } 
xmlhttp.open("GET", "data/" + id + ".html", true); 
xmlhttp.send(); 
} 
3

、あなたが明らかに構文エラーが即時になり空白を再追加したほうが良いです:

function(){ 
    if(xmlhttp.readyState==4&&xmlhttp.status==200){ 
    document.getElementById("content").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET","data/"+id+".html",true);xmlhttp.send(); 
} 

A}あまりにも多くがあります。また、関数の終了}の後に、を追加する必要があります。 xmlhttp.open()の前に

最後に、私はその無名関数がそこで何をするのか分かりません。それは実行されたり参照されたりしません。正しいコードを貼り付けてもよろしいですか?

関連する問題