1 (изменено: sergeiplugatyr, 2014-01-25 17:52:44)

Тема: AHK: Получение страницы через "InternetExplorer"

Здравствуйте, мне нужно получить содержимое интернет страницы именно через "InternetExplorer", пробовал так:

WebRequest := ComObjCreate("InternetExplorer.Application")
WebRequest.Open("GET", "ссылка") 
WebRequest.Send()

Но после обновления на AutoHotkey v1.1.14.01 он перестал работать. Может есть альтернатива этому скрипту?

Как сказал мой дед - Я твой дед

2

Re: AHK: Получение страницы через "InternetExplorer"

А ты не перепутал InternetExplore.Application с чем-то вроде WinHttpRequest?

Забыл пароль и потерял e-mail.

3 (изменено: sergeiplugatyr, 2014-01-25 21:24:24)

Re: AHK: Получение страницы через "InternetExplorer"

Не знаю, поправьте как нужно.

Как сказал мой дед - Я твой дед

4

Re: AHK: Получение страницы через "InternetExplorer"

Для http-запросов таким образом как в 1-м сообщении надо использовать какие-то из этих COM-объектов:

WinHttp.WinHttpRequest.5.1
Microsoft.XMLHTTP
Msxml2.XMLHTTP
Msxml2.XMLHTTP.2.6
Msxml2.XMLHTTP.3.0
Msxml2.XMLHTTP.4.0
Msxml2.XMLHTTP.5.0
Msxml2.XMLHTTP.6.0
Msxml2.ServerXMLHTTP
Msxml2.ServerXMLHTTP.3.0
Msxml2.ServerXMLHTTP.4.0
Msxml2.ServerXMLHTTP.5.0

Забыл пароль и потерял e-mail.

5

Re: AHK: Получение страницы через "InternetExplorer"

Решил свою проблему так:

text := com.document.documentElement.innerText
Как сказал мой дед - Я твой дед

6 (изменено: sergeiplugatyr, 2014-02-26 11:34:23)

Re: AHK: Получение страницы через "InternetExplorer"

Оживлю тему, есть вопрос по InternetExplorer.Application.Писал такой код:

com := ComObjCreate("InternetExplorer.Application")
com.Visible := true
com.Navigate("http://notepad.cc/login/neeluzbo28")
Sleep, 100
while com.busy || com.ReadyState <> 4
    continue
Sleep, 1000
com.document.all("pad_password").value := "123"
;~ com.document.querySelector("#submit").click() ; class="big_button"
com.document.querySelector("[class=""big_button""]").click()
while com.busy || com.ReadyState <> 4
    continue
Sleep, 1000
com.document.querySelector("#contents").value := "`n" Nick "`n"

Когда я вношу в текстовое поле значение переменной -

com.document.querySelector("#contents").value := Nick

то все что там было заменяется, а мне надо чтобы всё записывалось ниже или через разделитель "|". Пробовал делать так:

value := "`n" Nick "`n"

Но результат тот же.

Как сказал мой дед - Я твой дед

7

Re: AHK: Получение страницы через "InternetExplorer"

Проверить не могу, но кажется так:


Var := com.document.querySelector("#contents").value
com.document.querySelector("#contents").value := Var "`n" Nick "`n"
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: Получение страницы через "InternetExplorer"

О, спасибо огромное.

Как сказал мой дед - Я твой дед

9

Re: AHK: Получение страницы через "InternetExplorer"

Есть еще один вопрос, именно по querySelector. Из за нее у некоторых выдает ошибку даже при скомпилированном скрипте. Это скорей всего зависит из за версии Internet Explorer, если да то с какой версии она работает?

Как сказал мой дед - Я твой дед

10

Re: AHK: Получение страницы через "InternetExplorer"

В IE6 — нет, в IE8 — есть, но при этом в HTA почему-то нет.
Вместо

document.querySelector("#elementId")

лучше

document.getElementById("elementId")

11

Re: AHK: Получение страницы через "InternetExplorer"

Спасибо за подсказку.

Как сказал мой дед - Я твой дед

12 (изменено: sergeiplugatyr, 2014-02-28 20:28:58)

Re: AHK: Получение страницы через "InternetExplorer"

Я заменил эту строку

document.querySelector("[class=""big_button""]").click()

На эту

com.document.getElementById("[class=""big_button""]").click()

Не хочет нажимать на кнопку,а с querySelector все работает. Через iWB2 Learner посмотрел HTML код кнопки:

<input class="big_button" style="" type="submit" value="Login">

Как можно кликнуть по кнопке не используя querySelector?

Как сказал мой дед - Я твой дед

13 (изменено: sergeiplugatyr, 2014-02-28 22:54:33)

Re: AHK: Получение страницы через "InternetExplorer"

Вот так получилось сделать:

com.document.forms[0].tags("input")[2].click()

И так работает:

com.document.forms[0].elements[2].click()
Как сказал мой дед - Я твой дед

14 (изменено: sergeiplugatyr, 2014-03-02 11:47:17)

Re: AHK: Получение страницы через "InternetExplorer"

И снова здравствуйте, теперь мне нужно переписать этот код под AHK:

com := ComObjCreate("InternetExplorer.Application")
com.Visible := false
com.Navigate("http://notepad.cc/login/neeluzbo28")
Sleep, 100
while com.busy || com.ReadyState <> 4
    continue
Sleep, 1000
com.document.all("pad_password").value := "123"
com.document.forms[0].elements[2].click()
while com.busy || com.ReadyState <> 4
    continue
Sleep, 1000
Var := com.document.getElementById("contents").value
com.document.getElementById("contents").value := Var "`n" Nick "`n"

Подключив библиотеку COM.ahk начал переводить(почти половину перевел), дальше я не могу понять как сделать:

COM_Init()
com := COM_CreateObject("InternetExplorer.Application")
Com_Invoke(com, "Visible", "True")
Com_Invoke(com, "Navigate", "http://notepad.cc/login/neeluzbo28") 
while COM_Invoke(com, "Busy")
    continue
Sleep, 500
com.document.all("pad_password").value := "123"
com.document.forms[0].elements[2].click()
while COM_Invoke(com, "Busy")
    continue
Sleep, 500
Var := com.document.getElementById("contents").value
com.document.getElementById("contents").value := Var "`n" Nick "`n"

Надеюсь вы мне поможете

Как сказал мой дед - Я твой дед

15

Re: AHK: Получение страницы через "InternetExplorer"

sergeiplugatyr пишет:

И снова здравствуйте, теперь мне нужно переписать этот код под AHK

Этот код под AHK.

sergeiplugatyr пишет:

Подключив библиотеку COM.ahk начал переводить

Для работы с COM сейчас данная библиотека не нужна, она была для AHK-basic.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

16

Re: AHK: Получение страницы через "InternetExplorer"

Этот код под AHK

Первый код под AHK_L, он не запускается если я его компилирую AHK компилятором, выдает ошибку вроде на Visible.
А вот который второй код я его не могу перевести под AHK.

Как сказал мой дед - Я твой дед

17

Re: AHK: Получение страницы через "InternetExplorer"

sergeiplugatyr пишет:

Первый код под AHK_L, он не запускается если я его компилирую AHK компилятором, выдает ошибку вроде на Visible.

У меня нормально компилируется и запускается.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

18 (изменено: sergeiplugatyr, 2014-03-02 16:10:50)

Re: AHK: Получение страницы через "InternetExplorer"

Странно, почему тогда я его компилирую Ahk2Exe v1.0.48.05 и скрипт при запуске выдает ошибку com.Visible?

Как сказал мой дед - Я твой дед

19

Re: AHK: Получение страницы через "InternetExplorer"

А зачем компилировать старым компилятором? Текущая версия 1.1.14.1

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

20

Re: AHK: Получение страницы через "InternetExplorer"

Этот компилятор - 1.1.14.1 вроде как относится к AHK_L.

Как сказал мой дед - Я твой дед

21

Re: AHK: Получение страницы через "InternetExplorer"

Так мы им и пользуемся уже несколько лет. Сейчас AHK = AHK_L.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

22

Re: AHK: Получение страницы через "InternetExplorer"

Ну ладно признаюсь, я написал код и хотел бы его защитить от декомпилирования упаковав версией Ahk2Exe v1.0.48.05 но скрипт выдает ошибку. Поэтому возникла идея переписать его с применением библиотеки COM.ahk.

Как сказал мой дед - Я твой дед

23

Re: AHK: Получение страницы через "InternetExplorer"

К сожалению, никогда ею не пользовался.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

24

Re: AHK: Получение страницы через "InternetExplorer"

Всё еще жду помощи

Как сказал мой дед - Я твой дед

25 (изменено: sergeiplugatyr, 2014-06-23 23:04:27)

Re: AHK: Получение страницы через "InternetExplorer"

Всем доброго времени суток, появился 1 вопрос. Вообщем, есть сайт, на нем открыта одна вкладка и название этой вкладки меняется примерно через 10 секунд после запуска IE, пробовал получать название вкладки такими способами:

text := IE.document.title
text := IE.LocationName

Стивил их поочереди в Settimer и проверял условием, если оно совпадает с тем что надо названием, то происходит действие. Но почему-то название не обновляется после изменения в самом IE.

Как сказал мой дед - Я твой дед

26

Re: AHK: Получение страницы через "InternetExplorer"

И ещё, как можно переключаться между вкладками?

Как сказал мой дед - Я твой дед

27

Re: AHK: Получение страницы через "InternetExplorer"

Напишу сюда свой вопрос, похожие темы обсуждались.

Как активировать поле для ввода данных (к примеру, строку поиска) на любой странице браузера с помощью DOM? Можно конечно нажать на кнопку, которая в большинстве своем присутствует рядом, но хотелось бы знать универсальный вариант.

Как пример:

IE := IEGet()
if !IE
{
    IE := ComObjCreate("InternetExplorer.Application")
}
 
IE.Visible := True
IE.Navigate("https://autohotkey.com/search/")

IEGet(name="") {
   IfEqual, Name,, WinGetTitle, Name, ahk_class IEFrame
   Name := (Name="New Tab - Windows Internet Explorer")? "about:Tabs":RegExReplace(Name, " - ((Windows|Microsoft) Internet Explorer|Internet Explorer)")
   for wb in ComObjCreate("Shell.Application").Windows
      if wb.LocationName=Name and InStr(wb.FullName, "iexplore.exe")
         return wb
}

Loop
{
if (IE.readyState = 4)
    break
    
if (IE.document.readyState = "complete")
    break
    
if (!IE.busy)
    break
        
Sleep 50
}
   
oDoc := IE.document

oDoc.querySelector("input[name=""search""][title=""search""]").value := "абв"            

oDoc.querySelector("input[name=""search""][title=""search""]").click() - что нужно написать вместо click?

28

Re: AHK: Получение страницы через "InternetExplorer"

element.focus().
https://www.w3schools.com/jsref/dom_obj_all.asp

29 (изменено: Stepnoy, 2018-01-07 14:51:24)

Re: AHK: Получение страницы через "InternetExplorer"

Благодарю за ссылку, будем изучать.

По поводу своего вопроса: согласен, неправильно сформулировал.

Говоря проще: отправили в элемент фразу для поиска .value := "абв", затем нужно нажать Enter. Вот как этот Enter отправить элементу, чтобы запустился поиск?

P.S. Уже все свойства и методы пересмотрел. То ли найти не могу, то ли)..

30

Re: AHK: Получение страницы через "InternetExplorer"

IE := ComObjCreate("InternetExplorer.Application")
IE.Visible := True
IE.Navigate("https://autohotkey.com/search/")
while IE.busy
   continue
oDoc := IE.document
input := oDoc.GetElementByID("gsc-i-id1")
input.value := "SetTimer"
input.focus()
ControlSend,  Internet Explorer_Server1, {Enter}, % "ahk_id" IE.hwnd
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

31

Re: AHK: Получение страницы через "InternetExplorer"

Все работает, благодарю.

И для общего развития: а без ControlSend реально сделать? Через те же методы элемента, к примеру?

32 (изменено: teadrinker, 2017-09-01 20:08:45)

Re: AHK: Получение страницы через "InternetExplorer"

Вот так, вроде, работает:

IE := ComObjCreate("InternetExplorer.Application")
IE.Visible := True
IE.Navigate("https://autohotkey.com/search/")
while IE.busy
   continue
oDoc := IE.document
input := oDoc.GetElementByID("gsc-i-id1")
input.value := "SetTimer"
input.focus()
event := oDoc.createEvent("KeyboardEvent")
event.initKeyboardEvent("keydown", true, true, oDoc.parentWindow, "Enter", 0, "", false, "en-US")
input.dispatchEvent(event)
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

33

Re: AHK: Получение страницы через "InternetExplorer"

У меня не работает.

Но буду пробовать играться с новыми знаниями (слишком много их, нужно все переварить). Если чего получится - отпишусь.

Всех еще раз благодарю за ответы/советы.

34

Re: AHK: Получение страницы через "InternetExplorer"

Ещё так можно попробовать:

IE := ComObjCreate("InternetExplorer.Application")
IE.Visible := True
IE.Navigate("https://autohotkey.com/search/")
while IE.busy
   continue
oDoc := IE.document
while !input := oDoc.GetElementByID("gsc-i-id1")
   Sleep, 50
input.value := "SetTimer"
input.focus()
event := oDoc.createEvent("KeyboardEvent")
event.initKeyboardEvent("keydown", true, true, oDoc.parentWindow, "Enter", 0, "", false, "en-US")
input.dispatchEvent(event)

По-моему, там страница после загрузки ещё формируется, поэтому элемент #gsc-i-id1 доступен не сразу.
Проверял на Win 7 и 10.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

35

Re: AHK: Получение страницы через "InternetExplorer"

В общем, уже вроде все перепробовал - клавиши ни в какую не отсылаются в элемент.
Остальное-то все работает без проблем, а вот именно нажатие клавиш не срабатывает.

Проверил обновления ie - всё последнее установлено. Где что копать - даже не представляю.

Кстати, пробовал на английском форуме искать похожие примеры - вообще ничего не нашел. То ли поиск глючит, то ли.. (ну не мог же никто никогда этот вариант не использовать).

36

Re: AHK: Получение страницы через "InternetExplorer"

Я когда-то такой же вариант использовал, только с мышкой:
http://forum.script-coding.com/viewtopi … 318#p95318
Проверяйте A_LastError, после каждого использованного метода.

37 (изменено: Stepnoy, 2018-01-07 14:32:54)

Re: AHK: Получение страницы через "InternetExplorer"

Самое интересное, что ошибок-то и нет - A_LastError ноль выдает. Такое чувство, что команда выполняется, только не в текущем окне/элементе, а где-то в другом месте.
Я еще пробовал вместо parentWindow вводить defaultView, но тоже без результатов.

ie упорно отвергает любые посягательства)).

38

Re: AHK: Получение страницы через "InternetExplorer"

У меня на нескольких компьютерах работает, так что код правильный.
Может что-то у вас блокирует эти методы.
UAC, встроенный firewall, запуск скрипта и IE от админа, сброс всех настроек IE...

39

Re: AHK: Получение страницы через "InternetExplorer"

Ну и еще один вопрос по ie, вроде подобная тема не поднималась.

На странице есть один фрейм (frame1), обратиться к которому можно следующим образом:

IEGet(name="") {
   IfEqual, Name,, WinGetTitle, Name, ahk_class IEFrame
   Name := (Name="New Tab - Windows Internet Explorer")? "about:Tabs":RegExReplace(Name, " - ((Windows|Microsoft) Internet Explorer|Internet Explorer)")
   for wb in ComObjCreate("Shell.Application").Windows
      if wb.LocationName=Name and InStr(wb.FullName, "iexplore.exe")
         return wb
}
IE := IEGet()

if !IE
{
    IE := ComObjCreate("InternetExplorer.Application")
}

IE.Visible := True
oDoc := IE.document
frame1 := oDoc.getElementById("имя фрейма").contentWindow.document

Если использовать запросы типа: frame1.getElementById(), то все отлично работает. Проблема заключается в элементах, где нет своего ID. Обычно обращение к элементу можно сделать через querySelector, но с фреймом данный способ почему-то не проходит. Много вариантов пробовал, постоянно выбивает ошибку: "Неопознанное имя".

Можно конечно обойтись getElementsByTagName(), но проблема в том, что данные на странице постоянно меняются. Придется сначала находить с помощью парсинга необходимый номер массива TagName и потом уже кликать на элемент.

Никто не сталкивался с подобным? Много тем просмотрел, в том числе и на англ. сайте, ничего работающего для себя не нашел.

40

Re: AHK: Получение страницы через "InternetExplorer"

Попробуйте так:

oIE := ComObjCreate("InternetExplorer.Application")
oIE.visible := True, oIEHWND := oIE.HWND
WinMaximize ahk_id %oIEHWND%
oIE.navigate("http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_frame_cols")
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10
iFrame := ComObj(9,ComObjQuery(oIE.document.getElementById("iframeResult").contentWindow,"{332C4427-26CB-11D0-B483-00C04FD90119}","{332C4427-26CB-11D0-B483-00C04FD90119}"),1)
msgbox % iFrame[0].document.documentElement.OuterHtml

41 (изменено: Stepnoy, 2018-01-07 14:36:23)

Re: AHK: Получение страницы через "InternetExplorer"

Сложный код). Если сходу не пойдет, придется разбирать по кусочкам. Но с другой стороны, заменить 20 строк кода одной). Оно того явно стоит.

Благодарю за ответ, буду тестить.

42

Re: AHK: Получение страницы через "InternetExplorer"

Тут в последнем примере подробно расписано:
https://autohotkey.com/docs/commands/ComObjQuery.htm

43 (изменено: Malcev, 2018-12-08 01:03:36)

Re: AHK: Получение страницы через "InternetExplorer"

teadrinker, а ты на другие страницы пробовал enter посылать?
У меня нигде, кроме как в поиске на сайте автохотки не работает.
Например в гугле ни так не работает:

event := oIE.document.createEvent("KeyboardEvent")
event.initKeyboardEvent("keydown", true, true, oIE.document.defaultView, "enter", 0, "", false, "en-us")
element.dispatchEvent(event)

ни так:

event := oIE.document.createEvent("Event")
event.initEvent("keydown", true, true)
event.keyCode := 13 ; enter
event.which := 13 ; enter
element.dispatchEvent(event)

44

Re: AHK: Получение страницы через "InternetExplorer"

А какому элементу ты в гугле пытался послать Enter?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

45

Re: AHK: Получение страницы через "InternetExplorer"

Кнопке "Мне повезёт".
Если закомментировать input.value := "test", то отправка Enter произойдет.

oIE := ComObjCreate("InternetExplorer.Application")
oIE.Visible := True
oIE.Navigate("https://google.com")
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10
input := oIE.document.querySelector("input[name=""q""]")
input.value := "test"
input := oIE.document.querySelector("input[name=""btnI""]")
event := oIE.document.createEvent("KeyboardEvent")
event.initKeyboardEvent("keydown", true, true, oIE.document.defaultView, "Enter", 0, "", false, "en-US")
input.dispatchEvent(event)

46

Re: AHK: Получение страницы через "InternetExplorer"

А почему ты думаешь, что эта кнопка вообще должна на это событие реагировать? Можно клик послать.

https://i.imgur.com/biW7ggz.png

Там события обрабатываются через библиотеку JsAction, нужно с ней разбираться.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

47 (изменено: Malcev, 2018-12-08 15:45:36)

Re: AHK: Получение страницы через "InternetExplorer"

teadrinker пишет:

А почему ты думаешь, что эта кнопка вообще должна на это событие реагировать?

Потому что такой код срабатывает:

oIE := ComObjCreate("InternetExplorer.Application")
oIE.Visible := True
oIE.Navigate("https://google.com")
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10
input := oIE.document.querySelector("input[name=""btnI""]")
event := oIE.document.createEvent("KeyboardEvent")
event.initKeyboardEvent("keydown", true, true, oIE.document.defaultView, "Enter", 0, "", false, "en-US")
input.dispatchEvent(event)

Могу предположить, что срабатывание блокируется (preventDefault) при вводе текста в поисковое поле.
Но кнопка поиска вообще не работает.
Хотя если вручную нажать энтер, то срабатывает.

oIE := ComObjCreate("InternetExplorer.Application")
oIE.Visible := True
oIE.Navigate("https://google.com")
While oIE.readyState != 4 || oIE.document.readyState != "complete" || oIE.busy
   Sleep, 10
input := oIE.document.querySelector("input[name=""q""]")
input.value := "test"
input := oIE.document.querySelectorAll("input[name=""btnK""]")[1]
input.focus()
event := oIE.document.createEvent("Event")
event.initEvent("keydown", true, true)
event.keyCode := 13 ; enter
msgbox % input.dispatchEvent(event)

48

Re: AHK: Получение страницы через "InternetExplorer"

Это как раз странно, что отправка клавиши кнопке хоть как-то срабатывает. Ведь клавиатурные нажатия по идее посылаются элементу, на котором фокус, а кнопка здесь не может быть в фокусе.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

49 (изменено: Malcev, 2018-12-08 15:12:12)

Re: AHK: Получение страницы через "InternetExplorer"

Я думаю, что фокус при выполнении dispatchEvent роли не играет.
По второму коду есть какие-то предположения?

50

Re: AHK: Получение страницы через "InternetExplorer"

Для dispatchEvent не играет, но зачем подписывать элемент на событие, которого не может произойти? Я до завтра без компьютера, сейчас не могу попробовать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

51

Re: AHK: Получение страницы через "InternetExplorer"

А почему ты думаешь, что не может произойти?
В Event Listeners keydown на эти элементы присутствует.

52

Re: AHK: Получение страницы через "InternetExplorer"

Malcev пишет:

В Event Listeners keydown на эти элементы присутствует

Действительно, в Хроме есть, но в них нет обработки Enter (key: 13).
Фокус на кнопку «Мне повезёт» можно установить клавишей Tab, но если в поле ввода присутствует текст, Enter не срабатывает даже вручную.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

53

Re: AHK: Получение страницы через "InternetExplorer"

teadrinker пишет:

Действительно, в Хроме есть, но в них нет обработки Enter (key: 13).

А эта информация откуда?
Давай про одну кнопку - "Google Search".
Если вписать в поиск какой-то текст и поставить на эту кнопку в консоле мониторинг событий monitorEvents($0, "key"), то там отлавливаются события нажатия enter.

54 (изменено: teadrinker, 2018-12-09 23:17:26)

Re: AHK: Получение страницы через "InternetExplorer"

Malcev пишет:

А эта информация откуда?

Очевидно, оттуда же, откуда у тебя информация о

В Event Listeners keydown на эти элементы присутствует

из Хрома, вкладка Event Listeners, описание события keydown.

отлавливаются события нажатия enter

Ну значит они всё же обрабатываются, видимо через JsAction, но функция обработчика пока неизвестна, поэтому как именно обрабатываются — непонятно, может как-то определяются и блокируются нефизические события.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

55 (изменено: Malcev, 2018-12-10 16:05:47)

Re: AHK: Получение страницы через "InternetExplorer"

teadrinker пишет:

функция обработчика пока неизвестна

Для мониторинга она ненужна.
Выбираем нужный нам элемент, потом в консоле ставим галочку на Preserve log и выполняем:

monitorEvents($0)

В результате получаем, что вместе с энтером посылается клик:

keydown KeyboardEvent {isTrusted: true, key: "Enter", code: "Enter", location: 0, ctrlKey: false, …}
keypress KeyboardEvent {isTrusted: true, key: "Enter", code: "Enter", location: 0, ctrlKey: false, …}
click MouseEvent {isTrusted: true, screenX: 0, screenY: 0, clientX: 0, clientY: 0, …}
keyup KeyboardEvent {isTrusted: true, key: "Enter", code: "Enter", location: 0, ctrlKey: false, …}

56 (изменено: teadrinker, 2018-12-10 20:07:17)

Re: AHK: Получение страницы через "InternetExplorer"

И о чём это говорит? Если функции-обработчика нет, как браузер узнает, что нужно делать при наступлении того или иного события?
Или ты имеешь в виду, что сам браузер мониторит события и посылает клик, когда мы нажимаем Enter в поле ввода?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

57

Re: AHK: Получение страницы через "InternetExplorer"

Я так понял, что ты имел в виду, что для того чтобы разобраться, как обрабатывается enter, нужно разбираться в коде этой js библиотеке.
Поэтому и написал, что не нужно, так как броузер покажет, какие события он обрабатывает.

teadrinker пишет:

Или ты имеешь в виду, что сам браузер мониторит события и посылает клик, когда мы нажимаем Enter в поле ввода?

Сомневаюсь, что броузер сам посылает клик.

58

Re: AHK: Получение страницы через "InternetExplorer"

Так «какие» события и «как» обрабатывается — это не одно и то же.
Осталось непонятным, каким образом посылается клик и зачем.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

59 (изменено: Malcev, 2018-12-10 20:49:51)

Re: AHK: Получение страницы через "InternetExplorer"

А нет, всё-таки броузер посылает клик.

If the user agent supports letting the user submit a form implicitly (for example, on some platforms hitting the "enter" key while a text control is focused implicitly submits the form), then doing so for a form, whose default button has activation behavior and is not disabled, must cause the user agent to fire a click event at that default button.

https://html.spec.whatwg.org/multipage/ … submission

60

Re: AHK: Получение страницы через "InternetExplorer"

Ага, мне так и казалось, что это фишка браузера.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder