2009-10-01 41 views
12

我在IE收到一個腳本錯誤:需要在Internet Explorer腳本錯誤中找到line/char的實際位置?

行:59 字符:71 錯誤:預期標識符,字符串或數字 代碼:0

59號線,71字符似乎不實際上對應我的代碼。它甚至沒有說什麼文件,但我看了看我的主JavaScript文件,查看頁面源等

這種情況以前也發生在我身上,我已經看了看四周,直到我終於找到一個錯誤代碼 - 通常是一個逗號 - 但我真的想從這些行/字符數中得到一些用處。我讀過一次,它是對IE瀏覽器內部版本的引用。

有沒有人對如何找出這些數字的實際含義,看到的代碼是造成問題的行信息?

感謝任何幫助!

回答

16

我發現IE Line#/ Char#無用或者更麻煩,那麼值得。

如果要包括多個JavaScript文件和所有它給你的是一個線#和字符#這是大量的工作,以所有的腳本串連在一起弄明白錯誤所在。

如果我可以在firefox中使用螢火蟲找到錯誤,那麼這是最簡單的方法。如果它是一個IE瀏覽器唯一的問題我做的是能夠在Internet選項腳本調試,

  1. 轉到工具 - > Internet選項 - >高級 - >禁用腳本調試器(Internet Explorer)
  2. 轉到工具 - > Internet選項 - >高級 - >禁用腳本調試(其他)

    然後安裝Visual Studio調試器時發生錯誤。

如果您使用的是IE 8,請安裝developer toolbar,因爲它內置了一個調試器。

如果您在不使用調試器,只是查看源代碼,並獲得行#你可以試着查看真正熱衷 - > IE瀏覽器工具欄Developper在原始來源。

你的情況,你得留意後綴的逗號在對象文本

var obj = { 
a: 1, 
b: 2, 
} 

或命名變量與保留關鍵字如「階級」,已經燒了我很多次。 這是一個列表reserved keywords

+0

感謝您關於在IE上禁用腳本調試的很好的提示。 FF中的Firebug非常棒,但我總是感到沮喪與IE瀏覽器只工作。 所以在理論上,將javascript文件連接在一起(按照它們添加到html頭部的順序)會在IE中呈現可用的行號? – croixhaug

+0

一些重要提示很好的答案。 – jini

+0

即使使用IE(8)調試器,單擊錯誤消息也不會將光標移動到錯誤的位置。它當然不會把它帶到指定的行/字符,也不會帶來任何有意義的事情。 「 –

0

瀏覽器的行號確定不同,因此不能可靠地報告錯誤發生在與源代碼有關的正確行號。例如,Internet Explorer會報告與瀏覽器自身的文檔源內部呈現相關的行號,這些內容可能與源文件匹配,也可能不匹配。 Firefox更可靠地報告錯誤的位置,報告腳本文件在適用的情況下發生了錯誤。

行號可以幫助您找出腳本中出現錯誤的一般位置。您可以複製文檔源並將其粘貼到提供行編號的文本編輯器中,如Textpad。或者,您可以在「Internet選項」對話框的「程序」選項卡上設置默認的HTML編輯器。

+3

」瀏覽器不能可靠地報告正確的行。「即Internet Explorer。 – recursive

+0

不,我在Firefox中也有類似的問題。你只需要編寫JavaScript的Firefox很多注意到這一點。似乎主要是因爲嘗試/捕捉而發生的。 – Christian

3

如果您還沒有這樣做,我建議您嘗試使用IE8中的相同頁面。如果錯誤沒有發生,請嘗試將IE8切換到兼容性視圖。

如果您確實發生了錯誤,那麼內置的開發人員工具非常適合查找JavaScript中問題的確切位置。

0

爲什麼使用IE7或IE8的Web開發工具。當你有一個JS錯誤時,它會問你是否要調試,你會說「是的,我想要」,它會打開一個很好的調試器,完全在問題線上。
不幸的是,我在Linux上,並不能給你一個打印屏幕,告訴你如何打開它。