错误:未捕获的SyntaxError:意外的标记<

出于某种原因,我收到此错误消息:

Uncaught SyntaxError: Unexpected token < 

对于这一行代码:

 title: '<img src="http://img.dovov.comtext/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="http://img.dovov.comtext/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的问题; 它试图将angular括号解释为HTML标签。

设置您的JavaScript时尝试这样做:

 <script> //<![CDATA[ // insert teh codez //]]> </script> 

或者,将您的JavaScript移动到一个单独的文件。

编辑:啊..那个链接我跟踪了下来。 我说的是问题不是问题。 是从网站上剥离的问题:

 <script type="text/javascript" $(document).ready(function() { $('#infobutton').click(function() { $('#music_descrip').dialog('open'); }); $('#music_descrip').dialog({ title: '<img src="http://img.dovov.comtext/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标记未closures。 它应该是<script type="text/javascript">

但是,我之前的build议仍然存在:您应该将内部标记的脚本放在CDATA块中,或将它们移动到单独链接的文件中。

这不是这个问题,但它会更快地显示真正的问题。

我有完全相同的症状,这是我的问题,追查非常棘手,所以我希望它可以帮助别人。

我正在使用JQuery parseJSON() ,我试图parsing的内容实际上不是JSON,而是返回的错误页面。

我也得到了这个错误,当开发一个使用HTML5推送状态与一个.htaccess的redirect到index.html任何未知文件的Backbone应用程序。

事实certificate,当访问诸如/something/5的URL时,我的/index.html被有效地提供给了/something/index.html (感谢我的.htaccess)。 这样做的结果是将所有相对URL(从index.html中)都打破到我的JavaScript文件中,这意味着它们应该有404'd。

然而,再次由于我的htaccess,而不是404'试图检索JS文件,而是返回我的index.html。 因此,浏览器为每个JavaScript文件提供了一个index.html文件,当它将HTML评估为JavaScript的时候,它返回了一个JS错误,因为前面的<(来自index.html中的我的标记) 。

在我的情况下的修复(因为我是从一个子目录内服务的网站)是添加一个基地标签在我的HTML头。

<base href="/my-app/">

通常情况下,当您尝试加载非HTML资源(例如jquery库脚本文件作为text / javascripttypes)和服务器时,会发生这种情况,而不是返回预期的JS资源,而是返回HTML,通常是404页面。

然后浏览器尝试将资源parsing为JS,但由于实际返回的是HTML页面,parsing失败,出现语法错误,并且由于HTML页面通常以<字符开始,因此这是突出显示的字符在语法错误exception。

当你改变文件所在的目录名时,它通常起作用。 当我从“js /”移动到“../js”时它对我有用

如果您只在Chrome和IE中遇到这个问题,那么一切正常,然后在开发工具(F12 – >“Network”选项卡)中启用checkbutton“ Disable cache ”并在最近一小时内清除历史logging。

我有这个问题,上面的解决scheme为我工作。

尝试replace文本/ JavaScript的文本/ HTML然后保存该笔记和重新加载浏览器,然后将其带回到文本/ JavaScript ..我不知道,但不知道,但这一个与我一起工作..我正在寻找和copy-粘贴,我只是不小心撤消了我正在打字然后繁荣kablooey它的工作0.O顺便说一句,我只是小白..抱歉,我只是觉得它可以帮助虽然..

我不知道你是否得到了答案。 我今天遇到这个问题,我想我有一个可能的正确答案:你不把脚本文件放在正确的位置。

大多数人不会遇到这个问题,因为他们把脚本直接放到他们的服务器目录中。 我遇到这个是因为我把源文件(html文件)链接到服务器根目录。 我没有链接脚本文件,我不知道nginx如何find它们。 但是他们没有正确加载。

将所有文件链接到服务器根目录后,问题就解决了。