2013-12-10 36 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,但这是另一个问题。