jQuery TypeError“无法调用方法'toLowerCase'的未定义”(函数uaMatch)

时间:2012-05-05 15:38:06

标签: javascript jquery subdomain

我对jQuery有一个非常奇怪的问题:

我有一个网站(使用Flask):http://localhost:5000/,它完美无缺。现在我已经设置了一个子域,编辑了我的/etc/hosts(我添加了127.0.0.1 fonts.localhost),子域使用了完全相同的html(甚至更少)但是当我加载网站时,jQuery给了我这个错误: Uncaught TypeError: Cannot call method 'toLowerCase' of undefined。它来自未压缩jQuery 1.7.2文件的行uaMatch中的函数884。传递给函数的参数必须是未定义的,uaMatch只用userAgent调用一次(第925行),在第75行分配userAgentuserAgent = navigator.userAgentnavigator.userAgent"Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19"(根据调试控制台)。

所以我真的不明白为什么我会收到这个错误,这个错误只发生在子域上。 fonts.localhost:5000的重要html。

<!doctype html>
<title>test</title>
<meta charset=utf-8>
<link rel=stylesheet type=text/css href="http://localhost:5000/static/style.css">
<link rel=stylesheet type=text/css href="http://localhost:5000/static/bootstrap.min.css">
<script type=text/javascript src="http://localhost:5000/static/jquery-1.7.2.min.js"></script>
<body>
    …
</body>

修改: 它也不适用于未压缩的jQuery(我还包括在谷歌托管的jQuery文件进行测试,同样的错误)

1 个答案:

答案 0 :(得分:0)

哦,亲爱的,我终于发现了错误,似乎jQuery无法处理没有TLD的域名,我将主机条目从127.0.0.1 fonts.localhost更改为127.0.0.1 fonts.localhost.localdomain,此更改后jQuery正常工作。是否值得一个bug报道?