Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Кроссбраузерность docuement.getElementById


Автор: sandland 30.11.2008, 01:48
Добрый день. 
Подскажите пожалуйств, что использоваться в замену docuement.getElementById в других браузерах.  
Вот простенький код. Я чначала пытался реализоваться это с пмоощью JQuery , но невышло, я не нашел ф-ции добавления html'a к спану, а лишь его полное обновление. В такой реализации возинкает проблема, что все браузеры кроме ИЕ выводят просто надписи (элементы массива button_labels), полностью игнорируя HTML код.

Код

var button_labels=Array('Главная','Услуги','Портфолио','Контакты','О нас','Разработчикам');
var button_names=Array('main','uslugi','portfolio','kontakts','aboutus','fordevelopers');
var i=0;

  var length=button_labels.length;
  document.getElementById('polosa').innerHTML="<table border='0' class='main_polosa'>";
  document.getElementById('polosa').innerHTML+="<tr><td align='center'>";
  for(i=0;i<length;i++)
  {
    document.getElementById('polosa').innerHTML+="<span class='button_td' id='"+button_names[i]+"'><b>"+button_labels[i]+"</b></span>";
    if(i!=length-1)
    {
     document.getElementById('polosa').innerHTML+="<span class='button_razdel'></span>";
    }
  }
  alert(navigator.appName);
  document.getElementById('polosa').innerHTML+="</td></tr></table>";
  //$(".button_razdel").css("background","red");
  //$("span.button_razdel").css({width:"25px",height:"38px",background:"url(../img/polosa_razdel.gif)"});
  //$("span.button_td").css({width:"145px",height:"35px",text-align:"center",cursor:"hand"});


Автор: anthonyBoard 30.11.2008, 02:05
По-моему getElementById() должен спокойно работать и в других браузерах, во всяком случае я с какими-либо проблемами getElementById() в IE, Opera, Safari, Mozilla, Chrome не сталкивался.

Сделай у себя в скрипте следующее:
Получай хендл элемента в какую-нибудь переменную, например
handle = document.getElementById('polosa');
, чтобы постоянно его в циклах не получать, и второе
попробуй сначала заполнять какую-нибудь переменную tempHTML всеми тегами как надо и потом вставлять в объект handle.innerHTML = tempHTML;
и наконец третье, из-за чего у тебя так в некоторых браузерах глючит, это скорее всего из-за ошибки в строчке

document.getElementById('polosa').innerHTML+="<span class='button_td' id='"+button_names[i]+"'><b>"+button_labels[i]+"</b></span";

посмотри внимательно, ты тег span не закрыл в конце!

Автор: sandland 30.11.2008, 02:09
да спан виноват, ночью уже свосем не соображаю, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)