15 августа 2008, 11:42 более 2-х лет назад
getElementById IE BUG
var $ = function (id, doc) { if((id)&&((typeof id == "string")||(id instanceof String) ) ){ if (!doc) { doc = document; } var ele = doc.getElementById(id); // workaround bug in IE and Opera 8.2 where // getElementById returns wrong element if (ele && (ele.id != id) && doc.all) { ele = null; // get all matching elements with this id eles = doc.all[id]; if (eles) { // if more than 1, choose first // with the correct id if (eles.length) { for (var i=0; i < eles.length; i++) { if (eles[i].id == id) { ele = eles[i]; break; } } } // return 1 and only element else { ele = eles; } } }return ele; }return id; // assume it's a node }
Теперь вместо doucment.getElementById(«somekrap») пишешь $(«somekrap») устраняет много проблем, когда голимый ИЕ не видит Элемент по названию айди. Вернее он выберает не по Id а по Name
Ещё одна прелесть этого скрипта, можно сразу указать другой тип Документа, например iframe
var myIFrame = $("iframe_id").contentWindow.document; var div4id = $("div_from_frame",myIFrame).innerHTML;
Ужатый вариант: