IE не устает давать повод поизвращаться в JavaScript'е.
В этот раз столкнулся с неработающими onclick и прочими event'ами в элементах, созданных динамически (через innerHTML). Из-за чего не работала ключевая фича сайта (а пока я понял, что именно из-за этого... В общем, как всегда).
Пришлось вызывать дополнительную функцию, которая заменяет event'ы со строковым типом (это как раз неработающие) на работающие функции:
// Fix for IE: makes eventhadlers work for elements created dynamically.
//
// Arguments example:
// @arrEvents = ['onclick', 'onmouseover', 'onmouseout'];
// @arrTtags = ['a'];
function fixEventHadlersIE(arrTags, arrEvents)
{
if (!document.all) return;
var e, elms, i, j, k;
for (k=0; k < arrTags.length; k++)
{
elms = document.getElementsByTagName(arrTags[k]);
for (i=0; i < elms.length; i++)
{
e = elms[i];
for (j=0; j < arrEvents.length; j++)
if (typeof e[arrEvents[j]] == 'string')
e[arrEvents[j]] = new Function(e[arrEvents[j]])
}
}
}
Весьма познавательно.
