Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   имитация клавишного ввода в input и enter (https://javascript.ru/forum/css-html-internet-explorer/75471-imitaciya-klavishnogo-vvoda-v-input-i-enter.html)

varjaginm 12.10.2018 19:05

имитация клавишного ввода в input и enter
 
Получаем с некоторого сайта страничку с полями для ввода параметров поиска. Форм нет. Куча скриптов следит за событием onchange.
Добираюсь до нужного элемента черех ДОМ-модель запущенного CreateObject('InternetExplorer.Application')
Если просто присвоить значение нужному инпуту ( oInputSearch:Value := cDeclcNum ), то даже после ручного Enter на сайт идет запрос с пустыми данными.
Если хоть один символ инпута изменить вручную, наблюдатели определяют факт изменения и запрос отправляется как надо.
Вопрос: Как симитировать ручной ввод и нажатие Enter ?

varjaginm 15.10.2018 16:38

Может, так ?
 
По аналогии с https://javascript.ru/forum/css-html...o-skachat.html
пробую на IE8 и IE11.
В идеале было бы выдать ClipBoard строку с Enter на конце,
но IE11 не понимает createEvent('ClipboardEvent'), только createEvent('KeyboardEvent').
С какими параметрами выдавать e.initKeyboardEvent(...) ?
У меня e.keyCode == 48 и изменить никак не дает.
Далее, пропытка Document.activeEmement.dispathEvent(e) выдает InvalidStateError
В IE8 можно использовать только fireEvent('onchange'), но меня сейчас заботит более IE11.
Что делать ?

varjaginm 22.10.2018 19:11

а в ответ тишина...
 
Похоже, решения нет.
Есть некое кол-во ресурсов, где рассматривается посылка символа в инпут,(например https://developer.mozilla.org/en-US/.../KeyboardEvent , http://jsfiddle.net/termi/yjc5F/ , https://gist.github.com/callmephilip/3519403 ) основанные на построении объекта события кнопки и заслания ее на диспетчирование.
Но при возможности моделирования всех связанных с кнопками событий (down, up, press и даже input), которые полностью обрабатываются в onkeydown... и пр. реального прихода в инпут никакого символа, кроме как набранного с клавы, НЕТ!
Попытки заслать символы через PostMessage(nHWND, WM_KEYDOWN,...)
упирается, как мне кажется, в невозможность определения этого самого nHWND, который через ДОМ-модель никак не определяется.
Или не там искал?

j0hnik 22.10.2018 19:15

input.value менять пробовали?


Часовой пояс GMT +3, время: 00:24.