17

Google Chrome を使用すると、次のエラー メッセージが表示されます。

エラー:

Uncaught SyntaxError: Unexpected token <

HTMLページの上部にあるdoctype宣言の直後に発生します

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

この JavaScript エラー メッセージの意味を教えてください。Google Chrome でのみ発生するようです (Safari、Firfox、および IE で正常に動作します)。

4

10 に答える 10

14

この問題は、JQuery を使用して HTML である XMLHTTPRequest から HTML をロードしていたときに発生しましたが、MIME タイプは text/javascript でした。

たとえば、次のようなコードがありました。

jQuery.ajax({
    data:'params=here',
    success:function(request) {
        jQuery('#country_list_container').html(request);
    },
    type:'get',
    url:'/getHtml'
});

jQuery は getHtml にリクエストを送信し、getHtml は HTML の単純なスニペットを返しますが、mime/type は"text/javascript". getHtmlアクションが返された理由はtext/javascript、jQuery からの要求の受け入れヘッダーが次のとおりであるためです。

"Accept:text/javascript, text/html, application/xml, text/xml, */*"

したがって、ヘッダーを強制するだけでtext/html、すべてが完全に機能しました。

表示されている解析エラーは、Javascript がコンテンツを評価しようとした結果です。

于 2010-02-26T14:27:15.440 に答える
2

私の場合、それはeval()ステートメントの中止が原因でした。問題を修正すると、エラーメッセージが消えました。

現在(2010年6月)、ChromeJavascriptにはバグのあるeval()ステートメントがあります。ステートメント内の変数に予約語''が割り当てられているeval()場合、エラーメッセージを発行せずに中止します。警告やエラーメッセージなしで中止し、中止には厄介な副作用があるため、このバグを発見するのにほぼ1週間かかりました。eval()deleteeval()

私はeval()この結果を達成するために使用していました:obj.delete=somevalue。

このコードにより、eval()が中止されます。

var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj.' + x + ' = y');

このコードは機能します:

var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj[\'' + x + '\'] = y');

eval()要約すると、を作成するために使用しないでくださいobj.delete = somevalueeval()同等のステートメントを作成するために使用しobj["delete"] = somevalueます。

于 2010-06-02T23:31:30.903 に答える
1

たぶん、HTTPコンテンツタイプはそうではありませんtext/htmlapplication/xhtml+xml

于 2008-12-26T07:09:27.237 に答える
1

このGoogleグループの質問を見つけました。

他の何人かは問題を経験していますが、解決していません。

http://www.google.com/support/forum/p/Chrome/thread?tid=7e9f87870a37e401&hl=en

于 2008-12-26T07:09:59.200 に答える
1

古いスレッドを浚渫するリスクがありますが(すべての情報を1か所にまとめた方がよいと思います)、Chromeはまだこれらのエラーをスローしているようです。私はサイトの開発中に次のことを取得し、JSとPHPのページでさまざまなことを試してそれを取り除きました。私が得たエラーは次のとおりです。

error in event handler for 'undefined': SyntaxError: Unexpected token ILLEGAL
chrome/EventBindings:183

最終的に、FireFoxでコードの有効性をチェックしているときに、'&'変換する必要のあるテキストが含まれているという警告として答えに出くわし'&amp;'ました。これが行われると、Chromeエラーはなくなりました。

スティーブ

于 2011-08-15T05:54:14.260 に答える
1

css と js の宣言の順序を入れ替えてみてください。私のために働いた。

于 2010-02-08T06:01:24.137 に答える
1

JSON で ajax リクエストに応答を返す場合は、必ず'application/json'Content-Type に使用してください。

于 2010-06-06T20:10:03.697 に答える
0

.innerHTMLphpで動的に生成され たものを設定しようとしたときにこの問題が発生しました(複数行で生成されました)。

改行文字をスペースに置き換えると、問題が解決しました。

于 2010-04-23T21:56:52.587 に答える
0

Rails アプリの場合は、format.js が response_to ブロックにあることを確認します。

于 2010-11-29T14:53:21.707 に答える