1 (изменено: sqrt(mom_weight), 2022-02-27 21:01:22)

Тема: AHK: Взаимодействие с DOM из activex

Доброе утро.

Я использую следующий код, чтобы вывести нужную страничку в activex.


Gui, Add, ActiveX, w500 h500 vWB, about:<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
WB.Navigate("http://site.com/")
Gui, Show
Return

Все работает, куки читаются и сохраняются. Но в таком варианте я не могу взаимодействовать с DOM никак.

В таком варианте возможно взаимодействие, но не передаются куки.


html =
(
<!DOCTYPE html>
<html>
   <head>
      <style>
			body {background:grey;}
      </style>
	</head>
   <body>
		<button>test</button>
   </body>
</html>
)
Gui, Add, ActiveX, w500 h500 vWB, about:<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
WB.document.write(html)
WB.document.querySelector("button").addEventListener("mouseup", Func("OnButton"))
Gui, Show
Return
OnButton()
{
	msgbox test
}

Собственно, возможно ли повесить функции на элементы в DOM как во втором варианте, только для первого?
И так же при первом варианте, в папку с кэшем IE скачиваются все файлы со странички (картинки, стили и сама страница). По закрытию окна, файл html удаляется, а картинки и стили нет, возможно ли как-то очищать их автоматом как с html файлом?
Спасибо.

2

Re: AHK: Взаимодействие с DOM из activex

sqrt(mom_weight) пишет:

Все работает, куки читаются и сохраняются. Но в таком варианте я не могу взаимодействовать с DOM никак

sqrt(mom_weight), добро пожаловать на форум! Ознакомьтесь, пожалуйста, с Правилами, отредактируйте свой пост. Обратите внимание на точки в конце предложений.
Непонятно, почему именно не можете, в вашем коде нет ничего, что бы этому мешало.

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

3 (изменено: sqrt(mom_weight), 2022-02-27 21:36:01)

Re: AHK: Взаимодействие с DOM из activex

teadrinker

Поэтому и пишу сюда, потому что не знаю почему.


WB.document.querySelector("button").addEventListener("mouseup", Func("OnButton"))
OnButton()
{
	msgbox test
}

Подобного рода конструкции не работают при использовании.


WB.Navigate("http://site.com/")

4

Re: AHK: Взаимодействие с DOM из activex

sqrt(mom_weight) пишет:

Поэтому и пишу сюда, потому что не знаю почему)

А что с точками опять?

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

5

Re: AHK: Взаимодействие с DOM из activex

teadrinker

За одну точку предъявить это сильно.
Яндекс лучше ранжировать не станет.

6

Re: AHK: Взаимодействие с DOM из activex

Яндекс не причём, есть правила форума. Считаете, что за одну не стоит предъявлять, так может и за две не стоит? Да ладно, и три не так много. В общем, надеюсь, поняли.

sqrt(mom_weight) пишет:

Подобного рода конструкции не работают

Вроде всё работает:

Gui, Add, ActiveX, w500 h500 vWB, about:<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
WB.Navigate("https://forum.script-coding.com/")
while WB.busy || WB.ReadyState != 4
   Sleep, 100
Gui, Show

WB.document.querySelector("a[href=""https://forum.script-coding.com/index.php""]").addEventListener("mousedown", Func("OnButton"))

OnButton() {
   MsgBox, test
}

Кликайте по заголовку Серый форум.

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

7

Re: AHK: Взаимодействие с DOM из activex

teadrinker


Неизвестное имя.
querySelector.

На саму строку и ругается.


WB.document.querySelector("a[href=""https://forum.script-coding.com/index.php""]").addEventListener("mousedown", Func("OnButton"))

8

Re: AHK: Взаимодействие с DOM из activex

Нужно в реестр прописать ключ для AHK, можно таким кодом:

FixIE()

FixIE() {
   static regKey := "HKCU\Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
   SplitPath, % A_IsCompiled ? A_ScriptFullPath : A_AhkPath, exeName
   RegRead, value, % regKey, % exeName
   if (value != 11000)
      RegWrite, REG_DWORD, % regKey, % exeName, 11000
   Return !ErrorLevel
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Взаимодействие с DOM из activex

teadrinker

Это помогло, спасибо.