2013-12-10 39 views
0

我的站點菜單在IE 11中停止工作我仍在學習,但我需要幫助來解決此問題。我發佈我認爲的問題是。我不明白primary_nav。這一切都是由一個人在我面前建立的。我一直在閱讀這個(getElementsByClassName)自IE 8以來不再好,但一直工作到現在。JavaScript IE 11

Navigation.prototype = { 
initialize : function() { 
    this.bound_show_menu = this.show_menu.bindAsEventListener(this); 
    this.bound_hide_menu = this.hide_menu.bindAsEventListener(this); 

    var drop_menus = document.getElementsByClassName('primary_nav')[0].getElementsByClassName('drop'); 

    for (i=0; i<drop_menus.length; i++) { 
     Element.extend(drop_menus[i]); 
     Event.observe(drop_menus[i], 'mouseover', this.show_menu); 
     Event.observe(drop_menus[i], 'mouseout', this.hide_menu); 
    } 
}, 

show_menu : function (event) { 

    var elt = Event.element(event); 
    if (elt.hasClassName('drop')) { 
     elt.addClassName('over'); 
    } else { 
     elt.up('.drop').addClassName('over'); 
    } 

}, 

hide_menu : function (event) { 

    var elt = Event.element(event); 
    if (elt.hasClassName('drop')) { 
     elt.removeClassName('over'); 
    } else { 
     elt.up('.drop').removeClassName('over'); 
    } 
} 

}

+1

'.getElementsByClassName()'在現代瀏覽器中應該沒問題,包括IE9以上。 IE8及更低版本不支持它。 您是否在IE11的開發人員控制檯中看到任何錯誤?你有任何依賴關係(例如Prototype或jQuery?)你可以把JSFiddle或類似的東西放在一起來展示問題嗎? –

+0

是的我在F12菜單上遇到了primary_nav行錯誤,錯誤是「無法獲取未定義或空引用的屬性'getElementsByClass名稱'」依賴不知道我不這麼認爲。問題出在jprofleetproducts.com和菜單不下拉在IE 11中。我會嘗試這個JSFiddle。 – user2091722

+0

您在其他瀏覽器中也遇到了該錯誤。 'document.getElementsByClassName('primary_nav')'沒有返回任何東西,因爲文檔裏沒有什麼'class =「primary_nav」'。 'accordion.pack.js'也有錯誤。你也有依賴[Prototype 1.6.0](http://prototypejs.org/)。 –

回答

1

這似乎是在你的TransMenus腳本的版本過時的瀏覽器檢測代碼中的問題。

事實上,幾年前Aaron Boodman解決了這個問題(通過徹底刪除那些代碼)。從https://github.com/aboodman/transmenus/獲取最新版本的CSS和JS,你應該很好。

0

我發現javascript在IE 11上根本不工作。經過研究,我發現它有一個補丁http://support.microsoft.com/kb/2836939。我正在運行Server 2003 SP2,IIS6。看起來IIS或ASP沒有將IE11識別爲支持Javascript的瀏覽器。補丁爲我工作。

我現在有一個問題,ReportViewer沒有使用IE11,但這是另一個問題。