我有一個很奇怪的問題與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),其中userAgent
,userAgent
分配在第75行:userAgent = navigator.userAgent
。 navigator.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的文件,在谷歌進行測試,同樣的錯誤)工作
不知道我明白了嗎?你已經建立了一個絕對鏈接到你的本地主機的網站,現在你已經添加了一個子域到你的本地主機,並編輯你的Windows主機文件,使它們一起工作,並且你在一個網站上包含了jQuery似乎沒有使用任何JavaScript,因爲您發佈的所有內容都是HTML,並且出於某種原因,它不起作用? – adeneo
它們並不完全是絕對的:我用忍者作爲模板引擎的瓶子,所以Flask爲我生成這些URL並將它們插入到模板中,所以它們是絕對的,但這不是問題,因爲我不必更改它們如果我將應用程序移動到我的服務器。我在Linux上,所以我編輯了我的'/ etc/hosts',沒有它,子域沒有正確解析。該網站現在不使用jQuery,通常它,我刪除了所有的JS來跟蹤錯誤,並確保它是由jQuery而不是從其他東西(但很好,我會縮小HTML)。 – dav1d
你的身體裏有什麼?看起來像執行某些腳本時產生的這個錯誤。你有任何JavaScript的身體?嘗試刪除html中的所有內容,除了使用腳本和樣式的'
'部分並查看是否有錯誤發生。當jquery(而某些腳本處理)試圖調用某個方法(在你的情況下'toLowerCase()')DOM對象和這個對象丟失時發生這樣的錯誤。 –