首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌浏览器: JavaScript错误消息

谷歌浏览器: JavaScript错误消息
EN

Stack Overflow用户
提问于 2008-12-26 05:58:26
回答 10查看 24.7K关注 0票数 17

使用Google Chrome时,我收到以下错误消息:

错误:

代码语言:javascript
复制
Uncaught SyntaxError: Unexpected token <

它紧跟在HTML页面顶部的doctype声明之后

代码语言:javascript
复制
<!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中运行良好)

EN

回答 10

Stack Overflow用户

发布于 2010-02-26 22:27:15

当我使用JQuery从一个超文本标记语言的XMLHTTPRequest加载超文本时,这个问题就发生了,但是mime类型是文本/javascript。

例如,我有一些代码,如下所示:

代码语言:javascript
复制
jQuery.ajax({
    data:'params=here',
    success:function(request) {
        jQuery('#country_list_container').html(request);
    },
    type:'get',
    url:'/getHtml'
});

jQuery正在向getHtml发送请求,而getHtml将返回一个简单的HTML片段,其mime/类型为"text/javascript"getHtml操作返回text/javascript的原因是因为来自jQuery的请求的accept标头是:

代码语言:javascript
复制
"Accept:text/javascript, text/html, application/xml, text/xml, */*"

所以,我所要做的就是强制输入text/html的头文件,然后一切都工作得很好。

您看到的解析错误是Javascript尝试对内容求值的结果。

票数 14
EN

Stack Overflow用户

发布于 2010-06-03 07:31:31

在我的例子中,它是由eval()语句中止引起的。当我修复这个问题时,错误消息消失了。

目前(2010年6月) Chrome Javascript有一个错误的eval()语句。如果为eval()语句中的变量分配了保留字'delete‘,则eval()将中止,而不会发出错误消息。我花了将近一周的时间才发现这个错误,因为eval()在没有任何警告或错误消息的情况下中止,而且中止有严重的副作用。

我使用eval()来实现这个结果: obj.delete =某个值。

此代码将导致eval()中止:

代码语言:javascript
复制
var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj.' + x + ' = y');

下面的代码可以工作:

代码语言:javascript
复制
var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj[\'' + x + '\'] = y');

总之,不要使用eval()来构造obj.delete = somevalue。使用eval()构造等价的语句obj["delete"] = somevalue

票数 2
EN

Stack Overflow用户

发布于 2008-12-26 07:09:27

可能HTTP内容类型不是text/htmlapplication/xhtml+xml

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/393529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档