加掛某個js導致VS2008 JScript IntelliSense失效
JScript IntelliSense是我鍾愛的VS2008新功能之一,在MS正式採用jQuery後,VS2008進一步還支援jQuery Intellisense,更是讓人雀躍。
無奈,在加掛某些js後(例如jquery-ui.js),你可能會看到如下錯誤:
VS2008抱怨Error updating JScript IntelliSense,而錯誤訊息指出載入的js某一列有問題。但可以確定,該JS程式在瀏覽器上是正常無誤,應屬VS2008在解析Javascript時的問題。如果只是加掛的JS沒有IntelliSense,這問題就不足掛齒;但事實並非如此,只要發生這類解析錯誤,連原有jquery.js的說明提示都會一併停擺,應驗了"一顆老鼠屎,壞了一鍋粥"。
遇到這類問題,最佳解是設法取得*-vsdoc.js檔案,但常常無法如願。所以我們得自力救濟,一開始我想到的做法是將有問題的js改用$.getScript()載入,但與該js相依的程式碼就必須而移在getScript()的complete事件再執行。程式在document.ready()之後一段時間才執行,會讓使用者察覺到延遲,而且想一想,為了設計期間的問題更改架構實在不是明智之舉。
後來我想到個新解法,弄個空白檔案,取名為jquery-ui-vsdoc.js放在jquery-ui.js的同目錄下。這樣子雖然無法提供對jquery-ui.js各函數的提示,但至少不會搞爛原本可用的jQuery IntelliSense,操作步驟也十分簡便。大家在面對類似狀況時,不妨一試。