JS: Как сделать document.getElementById перекрестный браузер?

document.getElementById, кажется, не работает через все браузеры (я имею в виду некоторые старые), и я уверен, что существуют разработчики, которые не знают об этом.

Какие решения Вы предложили бы сделать это перекрестным браузером?

Спасибо

6
задан Adeel Ansari 22 December 2009 в 11:15
поделиться

3 ответа

If document. getElementById тоже не работает:

  • Вы делаете это неправильно (недействительный HTML, пытаетесь получить доступ к именам вместо ID и т.д.)

или

  • Вы работаете с Netscape 4.x и Internet Explorer 4.x

Есть три способа работать с браузерами этой эпохи.

  • Скажите людям, чтобы они обновились. Они не обслуживаются, дыра в безопасности пронизывает кошмары как для пользователя, так и для автора.
  • Постройте на вещах, которые работают и убедитесь, что ваш JS проверяет существование getElementById и друзей, прежде чем пытаться их использовать ( if (!document.getElementById) { return false; /* Not enough DOM to bother with JS here */ } )
  • Узнайте о документе *(115429)*. all и document.layers
9
ответ дан 8 December 2019 в 17:22
поделиться

Вы уверены, что это не такая проблема ? Взгляните на нее интересно, я этого раньше не знал.

Однако, чтобы дополнить то, что уже предлагал Дэвид Дорвард, напишите функцию, как показано ниже.

function getElement (id) {

  if (document.getElementById) {
    return document.getElementById(id);
  }

  else if (document.all) {
    return window.document.all[id];
  }

  else if (document.layers) {
    return window.document.layers[id];
  }
} 
4
ответ дан 8 December 2019 в 17:22
поделиться
getElemID(obj){

if(document.getElementByID){
 return document.getElementByID(obj);
}

 else if (document.all){
  return document.all[obj];
  }

  else if (document.layers){
     return  document.layers[obj];
     }

  else {
       alert("Could not find support");
       return false;
       }
}
1
ответ дан 8 December 2019 в 17:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: