2012-05-05 31 views
1

我有一個很奇怪的問題與jQuery:在jQuery的類型錯誤「無法調用未定義的‘toLowerCase’」(功能uaMatch)

我有一個網站(含瓶):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。傳遞給函數的參數必須是未定義的,uaMatch僅稱爲單次(行925),其中userAgentuserAgent分配在第75行:userAgent = navigator.userAgentnavigator.userAgent"Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19"(根據調試控制檯)。

所以我真的不明白爲什麼我得到這個錯誤,只發生在子域。重要的html fonts.localhost:5000

<!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的文件,在谷歌進行測試,同樣的錯誤)工作

+0

不知道我明白了嗎?你已經建立了一個絕對鏈接到你的本地主機的網站,現在你已經添加了一個子域到你的本地主機,並編輯你的Windows主機文件,使它們一起工作,並且你在一個網站上包含了jQuery似乎沒有使用任何JavaScript,因爲您發佈的所有內容都是HTML,並且出於某種原因,它不起作用? – adeneo

+0

它們並不完全是絕對的:我用忍者作爲模板引擎的瓶子,所以Flask爲我生成這些URL並將它們插入到模板中,所以它們是絕對的,但這不是問題,因爲我不必更改它們如果我將應用程序移動到我的服務器。我在Linux上,所以我編輯了我的'/ etc/hosts',沒有它,子域沒有正確解析。該網站現在不使用jQuery,通常它,我刪除了所有的JS來跟蹤錯誤,並確保它是由jQuery而不是從其他東西(但很好,我會縮小HTML)。 – dav1d

+0

你的身體裏有什麼?看起來像執行某些腳本時產生的這個錯誤。你有任何JavaScript的身體?嘗試刪除html中的所有內容,除了使用腳本和樣式的''部分並查看是否有錯誤發生。當jquery(而某些腳本處理)試圖調用某個方法(在你的情況下'toLowerCase()')DOM對象和這個對象丟失時發生這樣的錯誤。 –

回答

0

哦,親愛的,我終於找到了錯誤,似乎jQuery無法處理沒有TLD的域名,在jQuery工作發生這種變化之後,我將hosts條目從127.0.0.1 fonts.localhost更改爲127.0.0.1 fonts.localhost.localdomain。這是值得一個bugreport?

相關問題