出于某种原因,我收到此错误消息:
Uncaught SyntaxError: Unexpected token <
Run Code Online (Sandbox Code Playgroud)
对于这行代码:
title: '<img src="/images/text/text_mario_planet_jukebox.png" id="text_mario_planet_jukebox"/>',
Run Code Online (Sandbox Code Playgroud)
在这方面:
$(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 });
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
我认为一切都应该很好,但我不明白为什么<
会以某种方式抛弃它.
哎呀,忘了展示这是怎么回事!我的错,
http://www.marioplanet.com/index.asp
有任何想法吗?
Ran*_*pho 40
这是一个浏览器问题,而不是javascript或JQuery问题; 它试图将尖括号解释为HTML标记.
设置javascripts时尝试这样做:
<script>
//<![CDATA[
// insert teh codez
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
或者,将您的javascript移动到单独的文件中.
编辑:啊......有了这个链接我跟踪了它.我所说的问题根本不是问题.这是从网站上剥离的问题:
<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 });
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
你能发现错误吗?它位于第一行:<script
标签未关闭.它应该是
<script type="text/javascript">
但是,我之前的建议仍然存在:您应将带内标记的脚本包含在CDATA块中,或将它们移动到单独链接的文件中.
这不是问题,但它会更快地显示真正的问题.
jef*_*f-h 12
在使用HTML5推送状态和.htaccess开发Backbone应用程序时,我也遇到了这个错误.htaccess将任何未知文件重定向到index.html.
事实证明,当访问诸如此类的URL时/something/5
,我/index.html
实际上正在服务/something/index.html
(感谢我的.htaccess).这会破坏我的JavaScript文件的所有相对URL(来自index.html内部),这意味着他们应该对我有404.
然而,再次由于我的htaccess,而不是404'尝试检索JS文件,而是返回我的index.html.因此,浏览器为其尝试引入的每个JavaScript文件提供了一个index.html,当它将HTML评估为JavaScript时,由于前导<(来自index.html中的我的标记),它返回了一个JS错误.
在我的情况下修复(因为我从一个子目录中提供网站)是在我的html头中添加一个基本标记.
<base href="/my-app/">
我有完全相同的症状,这是我的问题,追踪非常棘手,所以我希望它可以帮助某人.
我正在使用JQuery parseJSON()
,我试图解析的内容实际上不是JSON,而是返回的错误页面.
通常,当您尝试加载非html资源(例如,jquery库脚本文件作为text/javascript类型)并且服务器而不是返回预期的JS资源时,会发生这种情况,而不是返回HTML - 通常是404页面.
然后浏览器尝试将资源解析为JS,但由于实际返回的是HTML页面,因此解析失败并出现语法错误,并且由于HTML页面通常以<字符开头,因此这是突出显示的字符在语法错误异常中.