Я использую следующий код для переопределения функции JavaScript с именем dismissRelatedLookupPopup (). В Firefox это работает без проблем (отображает предупреждение один раз и запускает мой код), но в Internet Explorer 7 это приводит к бесконечному циклу, который отображает alert () навсегда. Я делаю это, потому что я не контролирую код, где вызывается dismissRelatedLookupPopup (), и я хотел бы добавить собственный хук, когда он вызывается. Есть ли кросс-браузерный способ сделать это?
old_dismissRelatedLookupPopup = dismissRelatedLookupPopup;
dismissRelatedLookupPopup = function dismissRelatedLookupPopup(win, chosenId) {
alert("i hate ie");
old_dismissRelatedLookupPopup(win,chosenId);
var name = windowname_to_id(win.name);
var elem = document.getElementById(name);
elem.onchange();
}
Примечание : Насколько я понимаю, когда JavaScript обновляет значение элемента напрямую (т.е. elem.value = 1), событие onchange () этого элемента не будет запускаться. Вот почему я включаю этот код для принудительного включения onchange () при обновлении значения.