1 (изменено: Евген, 2010-11-17 18:52:19)

Тема: VBS: Передача аргументов страничному скрипту

Коллеги, приветствую.
Вопрос в следующем...
Есть локальная HTML страничка (файл), у неё в теле содержиться скрипт, который обрабатывает входные аргументы.
Как можно их туда передать ?
т.е. я планирую открыть объект IE, потом navigate'у указать чтобы открыть локальный html файлик, а как потом вызвать процедуру скрипта и передать ей аргументы ?

Времени не хватает... :-(

2

Re: VBS: Передача аргументов страничному скрипту

Вот начало моего скрипта

Set objIE = CreatEObject("InternetExplorer.Application")
objIE.Visible = True
strURL = "C:\util\html\index.htm"
objIE.Navigate strURL
While objIE.ReadyState <> 4
    WScript.Sleep 100
Wend
msgbox objIE.Document.Scripts(0).innerHTML

Вот пробный код странички:

<html>
<body>
<script type="text/vbscript">
sub window_onload()
a="cvbn"
end sub

sub xc(inp)
alert inp
end sub
</script>
</body>
</html>

Вот я и встал :-(
Дальше я не знаю как в HTML страничке процедуре xc() передать циферку 5 как параметр

Времени не хватает... :-(

3

Re: VBS: Передача аргументов страничному скрипту

Товарищи !
Вроде придумал !!!
Надо сделать innerHTML в BODY в виде кнопки с прикрученным событием onclick в которое вписать нужную процедуру с нужными аргументами, ну а уш кнопку кликнуть скриптом - я мастак

Ща попробую

Времени не хватает... :-(

4

Re: VBS: Передача аргументов страничному скрипту

Ога ! Молорег ! Получилось !!! 

Set objIE = CreatEObject("InternetExplorer.Application")
objIE.Visible = True
strURL = "C:\util\html\index.htm"
objIE.Navigate strURL
While objIE.ReadyState <> 4
    WScript.Sleep 100
Wend

objIE.Document.Body.innerHTML="<input type=button id=btn1 onclick='vbscript:call xc(4)'>"
objIE.Document.GetElementByID("btn1").Click

Если у кого есть предложения лучше - пишите, я не претендую на идеальное...

Времени не хватает... :-(

5 (изменено: shiz, 2010-11-18 16:53:51)

Re: VBS: Передача аргументов страничному скрипту

Вставлять кнопку - жуткое извращение. Все глобальные переменные и процедуры - свойства и методы объекта Window:

call objIE.Document.parentWindow.xc(4)
Забыл пароль и потерял e-mail.

6 (изменено: Евген, 2010-11-19 19:20:17)

Re: VBS: Передача аргументов страничному скрипту

Сегодня вообще нашёл...

Window.execScript ()

только как заставить работать в моём случае - не пойму

shiz пишет:
call objIE.Document.parentWindow.xc(4)

А Вы так пробовали работает ? Что-то меня сомнение берёт...  но ещё не пробовал...  это ведь не объект, это процедура...


Вот я и попробовал...
http://korosteleff.narod.ru/error.png

Времени не хватает... :-(

7

Re: VBS: Передача аргументов страничному скрипту

Евген пишет:

Сегодня вообще нашёл...

Window.execScript ()

только как заставить работать в моём случае - не пойму

call objIE.Document.parentWindow.execScript("xc(4)", "VBScript")
Евген пишет:

А Вы так пробовали работает ?

Да.
Ошибка с тем же описанием и кодом возникла лишь после того, как я описал процедуру xc() как Private - попробуйте на всякий случай явно описать её как Public.

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

8

Re: VBS: Передача аргументов страничному скрипту

Тоже самое... http://korosteleff.narod.ru/dn.gif

Времени не хватает... :-(

9

Re: VBS: Передача аргументов страничному скрипту

файл.хтмл?параметр1=значение1&параметр2=значение2
не ?

Я конечно далек от мысли... (с)

10

Re: VBS: Передача аргументов страничному скрипту

2Евген

Set objIE = CreatEObject("InternetExplorer.Application")
objIE.Visible = True
strURL = "C:\downloads\sc\page.html"
objIE.Navigate strURL
While objIE.ReadyState <> 4
    WScript.Sleep 100
Wend
WScript.Sleep 3000
call objIE.Document.parentWindow.xc(4)

Ну вот так вот же работает. Только вот в чем загвоздка именно у меня.
При запуске скрипта, когда открываться окно IE, появляется вверху окна желтая панелька: "В целях безопасность IE не разрешает этому узлу бла-бла-бла ... Щелкните здесь для выбора нужного действия..."

Так вот, если не успеть кликнуть на панели и выбрать там пункт: "Разрешить заблокированное содержимое...", то сразу вываливается ошибка.

Конечно это где то там в настройках можно отключить, но поскольку я IE терпеть ненавижу, то не знаю где там это.
Я просто добавил строчку WScript.Sleep 3000. Нужно успеть за 3 секунды разрешить скрипту ActiveX.

Нас невозможно сбить с пути, нам пофигу куда идти.

11 (изменено: Евген, 2010-11-20 09:07:54)

Re: VBS: Передача аргументов страничному скрипту

Да, если успеть кликнуть - то работает
а кто знает как вот это можно использовать в данном случае ?

Window.execScript ()
Времени не хватает... :-(

12 (изменено: Евген, 2010-11-20 09:30:30)

Re: VBS: Передача аргументов страничному скрипту

smaharbA пишет:

файл.хтмл?параметр1=значение1&параметр2=значение2
не ?

Неа, локальная страничка...  сервера нет...

Времени не хватает... :-(

13

Re: VBS: Передача аргументов страничному скрипту

Ну и что, это совершенно не имеет значения

Я конечно далек от мысли... (с)

14

Re: VBS: Передача аргументов страничному скрипту

OFF: Тогда как считать эти параметры внутри её ?

Времени не хватает... :-(

15

Re: VBS: Передача аргументов страничному скрипту

DnsIs пишет:

...
При запуске скрипта, когда открываться окно IE, появляется вверху окна желтая панелька: "В целях безопасность IE не разрешает этому узлу бла-бла-бла ... Щелкните здесь для выбора нужного действия..."

Так вот, если не успеть кликнуть на панели и выбрать там пункт: "Разрешить заблокированное содержимое...", то сразу вываливается ошибка.

Конечно это где то там в настройках можно отключить, но поскольку я IE терпеть ненавижу, то не знаю где там это.
Я просто добавил строчку WScript.Sleep 3000. Нужно успеть за 3 секунды разрешить скрипту ActiveX.

DnsIs,

можно и не торопиться

16 (изменено: smaharbA, 2010-11-22 11:10:27)

Re: VBS: Передача аргументов страничному скрипту

Евген - примерно так

<body onload='javascript:argv=document.location.search.substring(1).split(/&/);for (i in argv) alert(argv[i]);'>

запускаем так
iexplore file:///C:\d.html?параметр1=значение1&параметр2=значение2

Я конечно далек от мысли... (с)

17

Re: VBS: Передача аргументов страничному скрипту

Коллеги - СПАСИБО !!!
Просто реально не хватает времени на основную основную работу + на саморазвитие и поиск нужной инфы, а Вы меня реально выручаете !!!

Времени не хватает... :-(