1 (изменено: Phoenixxx_Czar, 2020-02-10 04:38:20)

Тема: AHK: HTMLFile, переадресация

Доброго времени суток, есть вот такой код:

(document := ComObjCreate("HTMLFile")).write(var)

Я это использую для парсинга страницы, и попадаются страницы, где есть переадресация через JS вроде и когда проходит таймер - вылазит окошко от windows:
http://s01.geekpic.net/di-SY6AUC.png
Подскажите, как можно этого избежать?

2

Re: AHK: HTMLFile, переадресация

Парсить через RegEx? Ну, или перед парсингом удалить через RegEx джаваскрипты.

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

3

Re: AHK: HTMLFile, переадресация

Я тоже думал об удалении, но может есть какие-то другие варианты?

4

Re: AHK: HTMLFile, переадресация

Я с таким не сталкивался, нужен конкретный пример.

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

5 (изменено: Phoenixxx_Czar, 2020-02-10 06:34:17)

Re: AHK: HTMLFile, переадресация

<script type="text/javascript">
function error(){
location="/";
}
setTimeout( 'error()', 7000 );
</script>

6

Re: AHK: HTMLFile, переадресация

Можно попробовать setTimeout переопределить:

#Persistent
html =
(
<!DOCTYPE html>
<head>
   <meta charset="UTF-8">
   <title>Document</title>
</head>
<body>
   <script>
      function timer() {
         alert('Сработал таймер');
      }
      setTimeout(timer, 1000);
   </script>
</body>
</html>
)

doc := ComObjCreate("htmlfile")
doc.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
; doc.parentWindow.setTimeout := Func("Dummy")
doc.write(html)

Dummy(params*) {
}

Запустите, потом раскомментируйте строку, и снова запустите.

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

7

Re: AHK: HTMLFile, переадресация

Что-то слишком. Тогда уж проще проверять переменную на наличие той же картинки 404 и не создавать Com объект.
Спасибо за ответы.

8

Re: AHK: HTMLFile, переадресация

В смысле? Одна строчка.

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

9

Re: AHK: HTMLFile, переадресация

Можно просто ноль.

doc.parentWindow.setTimeout := 0

А возможно выключить JS в целом, наподобие:

JS.eval("delete ActiveXObject; delete GetObject;")
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.32.00 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

10

Re: AHK: HTMLFile, переадресация

Это вопрос или утверждение?

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

11

Re: AHK: HTMLFile, переадресация

Вопрос конечно, иначе я привёл бы код.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64, AutoHotkey_L v1.1.32.00 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

12

Re: AHK: HTMLFile, переадресация

doc.designMode := "on"

13

Re: AHK: HTMLFile, переадресация

Так парсинг перестаёт работать:

#Persistent
html =
(
<!DOCTYPE html>
<head>
   <meta charset="UTF-8">
   <title>Document</title>
</head>
<body>
   <script>
      function timer() {
         alert('Сработал таймер');
      }
      setTimeout(timer, 1000);
   </script>
</body>
</html>
)

doc := ComObjCreate("htmlfile")
doc.designMode := "on"
doc.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
; doc.parentWindow.setTimeout := ""
doc.write(html)
MsgBox, % doc.querySelector("body").innerHTML
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

14

Re: AHK: HTMLFile, переадресация

Хотя нет, так сработало вроде:

#Persistent
html =
(
<!DOCTYPE html>
<head>
   <meta charset="UTF-8">
   <title>Document</title>
</head>
<body>
   <script>
      function timer() {
         alert('Сработал таймер');
      }
      setTimeout(timer, 1000);
   </script>
</body>
</html>
)

doc := ComObjCreate("htmlfile")
doc.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
doc.designMode := "on"
; doc.parentWindow.setTimeout := ""
doc.write(html)
MsgBox, % doc.querySelector("body").innerHTML
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg