2015-07-21 19 views
0

Я работаю над старым веб-приложением (первоначально разработанным для Internet Explorer 6, теперь обновленным для Internet Explorer 8), и мне нужно обеспечить совместимость с Mozilla Firefox и Google Chrome. Мне удалось сделать это для Mozilla Firefox, но это сложнее в Google Chrome, меню не отображается, и я не знаю, почему вообще. У меня есть такой код (здесь для главного меню и также есть что-то подобное для подменю, которые разработаны при наведении на пункты меню):Из Internet Explorer 6 в Google Chrome

if((document.all)||(window.sidebar)){ 
     var clic=""; 
     var style=""; 
     if(this[i].url!=""){ 
      style="cursor:pointer;"; 
      clic=" onclick='window.location=\""+this[i].url+"\"'";} 
     A+="<div id='main"+i+"' style='position:absolute; left:"+X+"; top:"+Y+"; "+style+"width:130px"+/*this[i].larg+*/"; height:18px"+/*this.haut+*/"; background-color:"+colBarre+"; "+cssTexte+"; text-align:center' onmouseover='start("+i+", "+this[i].mnu+", "+X+", "+(Y+this.haut+1)+")'"+clic+">"+this[i].txt+"</div>";} 
    if(document.layers){ 
     var txt=this[i].txt; 
     if(this[i].url!=""){ 
      txt="<a href='"+this[i].url+"'>"+txt+"</a>";} 
     A+="<layer name='main"+i+"' left="+X+" top="+Y+" width=130px"+/*this[i].larg+*/" height=18px"+/*this.haut+*/" bgcolor="+colBarre+" onmouseover='start("+i+","+this[i].mnu+", "+X+", "+(Y+this.haut+1)+")'><center><span style='background-color:"+colBarre+cssTexte+"'>"+txt+"</span></center></layer>";} 
    X+=this[i].larg+1;} 

После многих исследований в Интернете я до сих пор не понимаю, какие документы.layers, document.all, window.sidebar, window.getElementById и document.getElementById - это то, что они точно вернут и какова разница между window.getElementById и document.getElementById.

Подводя итог: мне нужна информация о document.layers, document.all, window.sidebar, window.getElementById и document.getElementById.

+0

Просто подключите Mootools с уровнем совместимости или jQuery 1.x и дайте библиотекам понять это. Если вы еще не знаете, что такое 'document.all', вам не удастся это сделать в ближайшее время. –

+0

Я знаю document.all из DOM API, но я не нахожу, если он устарел или нет, и если он устарел, тем, что я могу заменить. Я не могу найти документацию об этом, поэтому я не знаю, что возвращает document.all. – eromjo

+0

'all' никогда не был функцией JavaScript, но специфической для JScript-функции Microsoft; также: «' all' больше не поддерживается. Начиная с Internet Explorer 11, используйте 'getElementById'. Смотрите: https://msdn.microsoft.com/en-us/library/ms537434(v=vs.85).aspx Так как IE8 также знает функции getElementBy ... , вы должны использовать те – feeela

ответ

0

Наконец, я решил свою проблему. Если кому-то нужен ответ, вот что я сделал. document.all и document.layers являются устаревшими, уже с Internet Explorer 6. Поэтому я использовал document.getElementById вместо document.all и удалял все условия if с document.layer. Наконец, я не нашел, что document.all, window.sidebar и document.getElementById return (EDIT: ответ здесь From Internet Explorer 6 to Google Chrome), но мое приложение хорошо работает на IE, MF и GC, и это то, что мне нужно, так что все в порядке.

Смежные вопросы