Visual Studio 2013中因SignalR的Browser Link引起的Javascript錯誤一則

dax.net發表於2013-10-27

眾所周知Visual Studio 2013中有一個由SignalR機制實現的Browser Link功能,意思是開發人員可以同時使用多個瀏覽器進行除錯,當按下IDE中的Browser Link按鈕後,開發中對頁面的更改會同步到所有已連線的瀏覽器中。Browser Link按鈕就是位於瀏覽器除錯按鈕右邊的一個類似“重新整理”的按鈕:

image

最近在開發apworks.org的新版本(之前因為供應商的問題導致網站全部癱瘓,我也一直沒來得及修復,索性自己重新打造一個,順便也驗證Apworks框架的可用性),發現在使用syntaxhighlighter外掛的頁面上,以前沒有問題的頁面現在出現瞭如下錯誤:

image

研究了很久,一直以為是jquery或者syntaxhighlighter的版本引起的,反覆測試了很長時間都沒有解決問題。最後發現,在出現錯誤的指令碼中,有以下這段註釋:

image

突然發現SignalR關鍵字,頓時覺得是由於Visual Studio 2013的Browser Link功能引起的,於是打算關閉該功能試試。在Browser Link按鈕右邊的下拉選單中,找到Enable Browser Link選項,將其左邊的鉤鉤去掉,如下:

image

再次執行程式,發現錯誤資訊已經沒有再出現了。其實,Browser Link功能就是Visual Studio 2013在啟動瀏覽器後,在已有的HTML文件中注入了一段使用SingalR協助除錯的程式碼,這可以通過Developer Tools看到:

image

希望本文會對遇到類似問題的朋友有所幫助。當使用Visual Studio 2013開發Web應用程式,並出現了神奇的javascript錯誤時,可以試試本文所述的方法。

相關文章