2015-03-02 86 views
0

我的js代碼已經在ie 9/chrome & firefox下工作了幾年。IE 10,我的js打破了,除非控制檯打開

我確實有console.log分散在我的js代碼中,但是即使提供我自己的console.log也沒有幫助。

我有一個列表,每個項目都有自己的onclick調用。

<ul> 
 
<li id="l_page0" onclick="ic2_selectPage(0)">Air Handling Unit 1</li> 
 
<li id="l_page1" onclick="ic2_selectPage(1)">Air Handling Unit 2</li> 
 
</ul>

隨着IE10,的onclick函數傳遞指數似乎得到了錯誤的數據,也就是可變數據擡起頭來使用指數給出錯誤的內容。

function ic2_selectPage (thisPage) { 
 
\t console.log("ic2_selectPage, Start - index= " + thisPage) ; 
 
\t if (pages.busyDrawing) { 
 
\t \t console.log("ic2_selectPage, exit as still busy") ; 
 
\t \t return ; 
 
\t } \t 
 
\t if (thisPage == pages.lastPage) { 
 
\t \t console.log("ic2_selectPage, exit as same page") ; 
 
\t \t return ; 
 
\t } \t 
 
\t pages.busyDrawing = 1 ; 
 
\t document.getElementById("s_selection").innerHTML= "page " + pages.page[thisPage].name ; 
 
\t console.log("ic2_selectPage, Setting status bar page name: " + pages.page[thisPage].name + " thisPage=" + thisPage) ; 
 
\t if (pages.lastPage != null) { 
 
\t \t document.getElementById("l_page"+pages.lastPage).style.background = "" ; \t // Back to default 
 
\t } \t 
 
\t document.getElementById("l_page"+thisPage).style.background = "#00ff11" ; 
 
\t if (pages.drawingsState) { 
 
\t \t console.log("ic2_selectPage, hide open drawing") ; 
 
\t \t pages.page[pages.lastPage].svgObject.style.display = "none" ; 
 
\t } else { 
 
\t \t pages.drawingsState = 1 ; 
 
\t \t document.getElementById("b_zoomin").disabled = false ; 
 
\t \t document.getElementById("r_drawing").style.display = "block" ; 
 
\t } \t 
 
\t pages.lastPage = thisPage ; 
 
\t pages.maxWidth = document.getElementById("r_drawing").offsetWidth ; 
 
\t pages.maxHeight = document.getElementById("r_drawing").offsetHeight ; 
 
\t console.log("ic2_selectPage, pages.maxWidth=" + pages.maxWidth + " pages.maxHeight=" + pages.maxHeight) ; 
 
\t if (pages.page[thisPage].svgObject != null) { \t // Unhide as exists 
 
\t \t console.log("ic2_selectPage, Unhide existing image") ; 
 
\t \t pages.page[pages.lastPage].svgObject.style.display = "block" ; 
 
\t \t pages.busyDrawing = 0 ; 
 
\t \t return ; 
 
\t } 
 
\t console.log("ic2_selectPage, Opening drawing: " + pages.page[thisPage].name + " thisPage=" + thisPage) ; 
 
\t document.getElementById("r_waitloading").style.display = "block" ; 
 
\t // Create new region for SVG object \t 
 
    \t pages.page[thisPage].svgObject = document.createElement('object') ; 
 
\t pages.page[thisPage].svgObject.setAttribute('type', 'image/svg+xml') ; 
 
\t pages.page[thisPage].svgObject.setAttribute('data', pages.page[thisPage].image+"?check_304") ; 
 
\t pages.page[thisPage].svgObject.setAttribute('width', pages.maxWidth); 
 
\t pages.page[thisPage].svgObject.setAttribute('height', pages.maxHeight); 
 
\t pages.page[thisPage].svgObject.onload = function() { ic2_svgLoaded(thisPage) ; } ; 
 
\t var container = document.getElementById("r_drawing") ; 
 
\t container.appendChild(pages.page[thisPage].svgObject) ; 
 
\t pages.loadingTimerID = setTimeout('ic2_svgLoadFailed('+thisPage+')',60000) ; \t // 60 secs 
 
\t //pages.page[thisPage].svgObject.onload = function() { ic2_svgLoaded(thisPage) ; } ; 
 
}

如果我執行的代碼後,打開控制檯中的日誌是一樣迷茫。

如果我點擊列表中的第二個項目,代碼會在狀態欄中顯示正確的文本(name for index = 1),但會獲取鏈接到index = 0的圖像文件。

然後打開控制檯(F12),我得到以下幾點:

HTML1300: Navigation occurred. 
 
File: 127.0.0.1:88 
 
ic2_onload, instanceID=971506572 
 
ic2_clockInit, Start 
 
ic2_cookieInit, Start 
 
ic2_fetchSites, Start 
 
ic2_jqueryListSites, Start 
 
ic2_buildSitesList, Start 
 
ic2_jqueryGetBranding, Start 
 
ic2_getcookie, Start 
 
ic2_verifyUser, Start 
 
ic2_verifyUser, Resp:1 
 
ic2_verifyUser, Done 
 
login.proceed, Start 
 
ic2_fetchPages, Start 
 
ic2_jqueryListPages, Start 
 
ic2_buildPagesList, Start 
 
ic2_wizard, start - pages 
 
ic2_jqueryCountAlarms, Start 
 
ic2_pages, Start 
 
ic2_wizard, start - last 
 
trend.hideTrend, Start 
 
users.hideUsers, Start 
 
ic2_selectPage, Start - index= 0 
 
ic2_selectPage, Setting status bar page name: Air Handling Unit 1 thisPage=0 
 
ic2_selectPage, pages.maxWidth=1360 pages.maxHeight=903 
 
ic2_selectPage, Opening drawing: Air Handling Unit 1 thisPage=0 
 
ic2_svgLoaded, Start 
 
ic2_svgLoaded, svgDoc=[object Document] 
 
ic2_svgLoaded, svgDoc.readyState=complete svgDoc.childNodes=2 
 
ic2_addPoints, Start 
 
ic2_addPoints, svgRoot.width=2000 svgRoot.height=1412.19 
 
ic2_addPoints, myComps.length=164 
 
pixelsScale = 0.9992886402004599

其中明確showns(11從底部)是的onclick經過指數= 0 ...檢查DOM確認點擊的列表項確實具有正確的索引= 1。

回答

0

Internet Explorer認爲一個網站有一個console.log語句作爲開發網站而不是生產版本。

一旦你完成編碼,刪除所有的console.log語句和你的應用程序應該工作正常,沒有工具欄被打開。

  • 所有這些都是由於window.console在dev toolabar關閉時未定義的。它得到的定義,當你打開了開發工具

如果你絕對需要保持你的控制檯報表,然後將它們包裝這樣的(我不建議你有在生產代碼控制檯發言):

if (console){ 
    console.log("Screen is overrated!"); 
} 
+0

謝謝你的迴應。 1)if(window.console)在IE10中測試TRUE(沒有控制檯打開)。 2)即使我通過定義我自己的console.log函數來終止控制檯,故障行爲仍會繼續。 – Derek 2015-03-02 15:30:13

+0

我已經設置了一個溫度。鏈接到我工作電腦上的網站。 http://purpleswift.selfip.com:88登錄名/密碼是demo/demo(如屏幕提示)。按頁面菜單項。然後打開AHU 1或2,按F5刷新並重試。在幾次嘗試中,您應該爲選定的AHU2獲得圖像AHU1打開。 – Derek 2015-03-02 18:03:54