Справочная информация:
Я пишу скрипт (в VBA, если это имеет значение) для ввода данных в веб-систему. Некоторая проверка системы выполняется только тогда, когда поле сфокусировано, поэтому я вызывал .Focus
для полей в VBA, чтобы заставить его работать. Но это крадет системную направленность; довольно раздражает, если я делаю что-то еще, пока работа выполняется.
Я хочу, чтобы проверка запускалась без кражи фокуса. Поэтому я пытаюсь напрямую вызвать любой обработчик события, зарегистрированный в поле ввода.
Проблема:
Все обработчики событий в веб-приложении добавляются с element.attachEvent()
, что означает, что свойства onfocus
и onblur
(которые, я считаю, те, которые мне нужны) не установлены.
Есть ли способ получить обработчики, не прибегая к еще большему количеству злых хаков?
В качестве альтернативы, есть ли лучший способ сделать это без необходимости искать обработчики событий? Я довольно новичок в JavaScript, так что я могу что-то упустить.
Редактировать: Есть ли какая-либо другая причина, по которой фокус может быть украден кодом VBA? Я не могу найти никаких других ссылок на .Focus
или даже на AutoIt WinActivate
, но даже с предложениями здесь, проблема все еще возникает.