何らかの理由で、このエラーメッセージが表示されます。
Uncaught SyntaxError: Unexpected token <
このコード行の場合:
title: '<img src="/images/text/text_mario_planet_jukebox.png" id="text_mario_planet_jukebox"/>',
このコンテキストでは:
$(document).ready(function() {
$('#infobutton').click(function() {
$('#music_descrip').dialog('open');
});
$('#music_descrip').dialog({
title: '<img src="/images/text/text_mario_planet_jukebox.png" id="text_mario_planet_jukebox"/>',
autoOpen: false,
height: 375,
width: 500,
modal: true,
resizable: false,
buttons: {
'Without Music': function() {
$(this).dialog('close');
$.cookie('autoPlay', 'no', { expires: 365 * 10 });
},
'With Music': function() {
$(this).dialog('close');
$.cookie('autoPlay', 'yes', { expires: 365 * 10 });
}
}
});
});
私はすべてがうまくいくはずだと思うが、<
がどういうわけかこれをスローしている理由を理解していない。
おっと、これがどこで起こっているかを示すのを忘れていました!私の悪い、
http://www.marioplanet.com/index.asp
何か案は?
これは、javascriptまたはJQueryの問題ではなく、ブラウザーの問題です。山括弧をHTMLタグとして解釈しようとしています。
JavaScriptを設定するときにこれを試してください。
<script>
//<![CDATA[
// insert teh codez
//]]>
</script>
または、javascriptを別のファイルに移動します。
編集:ああ...私はそれを追跡したそのリンクで。私が言ったことは、問題はまったく問題ではないということでした。 thisはWebサイトから削除された問題です。
<script type="text/javascript"
$(document).ready(function() {
$('#infobutton').click(function() {
$('#music_descrip').dialog('open');
});
$('#music_descrip').dialog({
title: '<img src="/images/text/text_mario_planet_jukebox.png" id="text_mario_planet_jukebox"/>',
autoOpen: false,
height: 375,
width: 500,
modal: true,
resizable: false,
buttons: {
'Without Music': function() {
$(this).dialog('close');
$.cookie('autoPlay', 'no', { expires: 365 * 10 });
},
'With Music': function() {
$(this).dialog('close');
$.cookie('autoPlay', 'yes', { expires: 365 * 10 });
}
}
});
});
エラーを見つけることができますか?最初の行にあります:<script
タグは閉じられていません。 <script type="text/javascript">
である必要があります
ただし、以前の提案は引き続き有効です。shouldタグ内のスクリプトをCDATAブロックで囲むか、個別にリンクされたファイルに移動します。
ここでは問題ではありませんでしたが、実際の問題をより迅速に示したはずです。
HTML5プッシュ状態と、未知のファイルをindex.htmlにリダイレクトする.htaccessを組み合わせて使用するBackboneアプリケーションを開発すると、このエラーも発生しました。
/something/5
などのURLにアクセスすると、/index.html
で私の/something/index.html
が効果的に提供されていました(私の.htaccessのおかげです)。これは、JavaScriptファイルへのすべての相対URL(index.html内から)を壊すという影響がありました。つまり、私に404を付ける必要がありました。
ただし、私のhtaccessにより、JSファイルを取得しようとすると404 'が実行される代わりに、index.htmlが返されました。したがって、ブラウザには、プルしようとしたすべてのJavaScriptファイルに対してindex.htmlが与えられ、HTMLをJavaScriptであるかのように評価すると、先頭の<(index.htmlの私のタグから)のためにJSエラーを返しました。
私の場合(サブディレクトリ内からサイトにサービスを提供していたとき)の修正は、htmlヘッドにベースタグを追加することでした。
<base href="/my-app/">
まったく同じ症状がありましたが、これは私の問題であり、追跡するのが非常に難しいので、誰かの助けになることを願っています。
JQuery parseJSON()
を使用しており、解析しようとしたコンテンツは実際にはJSONではなく、返されたエラーページでした。
通常、これは、非HTMLリソース(たとえば、text/javascriptタイプのjqueryライブラリスクリプトファイル)をロードしようとしたときに発生し、サーバーは、予想されるJSリソースを返す代わりに、HTMLを返します-通常404ページ。
その後、ブラウザーはリソースをJSとして解析しようとしますが、実際に返されるのはHTMLページであるため、構文エラーで解析が失敗し、HTMLページは通常<文字で始まるため、これは強調表示されている文字です構文エラーの例外。