IE attachEvent call возвращает true, но обработчик показывает «null»

У меня довольно простая страница ASP.NET, которая отображает ввод HTML (текстовое поле). В сгенерированном HTML я прикрепляю обработчик к нескольким событиям, включая onfocus, onkeypress и onkeyup. Поскольку это решение предназначено для версии IE, которая не поддерживает addEventListener (ситуация, о которой я ничего не могу сделать), я вынужден использовать attachEvent.

Типичный призыв attachEvent заключается в следующем: я извлек этот источник из оригинала ради краткости / ясности, поэтому это не совсем проблема:

var hostControl = document.getElementById('mytextbox'); var attachResult = hostControl.attachEvent('onfocus', function(){ hostControl.select(); }); if (!attachResult) { alert('Attach failed.'); } attachResult = hostControl.attachEvent('onblur', function(){ if (hostControl.value=='') { alert('Warning - no entry.'); } }); if (!attachResult) { alert('Attach failed.'); } 

Когда я выполняю этот код в отладчике IE, attachEvent возвращает «true» в обоих экземплярах, что должно указывать на успешную попытку присоединения к событию. Однако, когда я смотрю на обработчики [Event] для элемента управления в отладчике, все события показывают «null», никакой обработчик не прикреплен.

Вещи, которые я пробовал / исследовал:

  • Я прочитал несколько разных статей о капризах привязки к событиям в IE, поэтому я избегаю каких-либо «этих» ссылок.
  • Я попробовал одну версию, которая использовала один из блоков оболочки addEvent, который пытается использовать addEventListener, если он доступен, хотя я знал, что это будет IE-решение.

Когда я пробовал эту версию с FireFox, вложение событий работало должным образом через addEventListener, но с ошибкой в ​​IE с помощью attachEvent (при условии, что attachEvent все равно возвращает true).

  • Затем я решил устранить любые возможные проблемы, которые может ввести обертка, и использовать attachEvent непосредственно против элемента управления, что ведет меня туда, где я сейчас. Проблема сохраняется.

Хотелось бы подумать, что я просто пропустил что-то очень простое, так как я завязал события до этого без труда, но что-то здесь бросает мне криволинейный мяч, который я просто не узнаю. Оцените дополнительные глазные яблоки, чтобы увидеть, где я ошибся.