2013-04-11 48 views
4

我在Internet Explorer的兼容性方面遇到了一些麻煩。我正在構建一個大量使用HTML5畫布,CSS3和JavaScript的在線工具。該程序適用於所有主流瀏覽器,除了Internet Explorer。IE9:腳本只能在調試器中使用,但在非調試時不能使用

IE9切換到兼容模式,所以設置

<meta http-equiv="x-ua-compatible" content="IE=9"/> 

迫使IE與IE9標準來處理頁面。 IE不再屬於兼容模式,但腳本仍然無法正常工作。一些基本功能如繪圖或拖動對象的工作,但只有「一半」。

程序員在這種情況下做了什麼:他啓動調試器。這就是魔術發生的地方。只要我啓動IE9開發人員工具(使用IE9瀏覽器和文檔模式),腳本就能正常工作。但是,我應該如何調試一個在調試條件下工作正常的腳本,並且在不調試時會出現錯誤。

目前,我不知道該怎麼做。也許有人可以給我一個提示?非常感謝!

+0

代碼中是否存在控制檯行?有沒有錯誤信息? – epascarello 2013-04-11 13:18:56

+1

除非調試器打開,否則IE往往會在'console.log()'(和其他控制檯方法)上崩潰 - 您的代碼是否使用這種方法? – nnnnnn 2013-04-11 13:19:41

+2

任何你不使用'IE = edge'的原因?任何在IE10上應用程序的用戶都將被迫回到IE9,這可能是有害的 – 2013-04-11 13:22:07

回答

7

IE9不喜歡console調用,並且沒有向我們顯示任何代碼,我們只能猜測問題是什麼。您可以刪除任何console.log消息或在調用任何代碼之前使用此代碼段:

(!window.console) console = {log: function() {}}; 
+2

是的。如果您沒有打開開發工具,則「控制檯」在頁面上不可用 – TheBrain 2013-04-11 13:35:00

+1

問題已解決。有一些console.log()語句。這些似乎沒有調試時崩潰的IE瀏覽器。 當我刪除console.log()時,問題消失並且腳本的「半工作」可以完美地解釋,假定腳本停在console.log()語句處。 – Michael 2013-04-11 13:37:21