2013-12-10 7 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 Name» неопределенной или нулевой ссылки. Зависимости не уверены, что я так не думаю. Проблема заключается в 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.

На самом деле похоже, что Аарон Будман исправил эту проблему пару лет назад (полностью удалив этот бит кода). Возьмите последние версии CSS и JS от https://github.com/aboodman/transmenus/, и вам должно быть хорошо идти.

0

Я обнаружил, что javascript вообще не работал на IE 11. После исследования я обнаружил, что для него есть заплата http://support.microsoft.com/kb/2836939. Я запускаю Server 2003 SP2, IIS6. Кажется, что IIS или ASP не распознавали IE11 как браузер, поддерживающий Javascript. Патч работал для меня.

У меня теперь есть проблема, когда ReportViewer не работает с IE11, но это еще одна проблема.