как вызвать AutoIt функцию из JavaScript (IE) с передачей параметров во время вызова?
у меня пока только так -
есть функция AutoIt которая подписана на событие ondataavailable элемента document:
и есть JavaScript функция:
Работает эта "бодяга" так:
1)AutoIt регистрирует свою функцию вызовом $oDoc.CallBack("_title") или $oDoc.CallBack(StringLower(FuncName(_title)))
2)JavaScript создает функцию с этим именем и привязывает ее к document'у
3)Во время вызова JavaScript'ом этой функции (document._title("некий текст");) все параметры собираются в строку с разделителем '&' и записываются в document.calling.attr название функции передается в document.calling.name и вызывается событие ondataavailable
4)AutoIt получает событие обрабатывает параметры document.calling.attr и с ними методом Call вызывает функцию с именем document.calling.name
Вопрос есть другой способ? я уже 3 день ищу и не могу найти!!! на вашем форуме есть толь ветки типа "как нажать кнопку в IE"!!! если есть ссылки на стороние ресурсы где есть инфа скинте пожалуйста!!! Зарание благодарен!!!
Добавлено:
Неужели не кто ни знает? :(
у меня пока только так -
есть функция AutoIt которая подписана на событие ondataavailable элемента document:
Код:
$oDoc = _IEDocGetObj($oIE)
ObjEvent($oDoc,"_oDoc_")
Func _oDoc_ondataavailable()
$name = $oDoc.calling.name
$retVal = 0
if $oDoc.calling.attr = "" Then
$retVal = Call($name)
Else
$attr = StringSplit($oDoc.calling.attr,"&")
$attr[0] = "CallArgArray"
$retVal = Call($name,$attr)
EndIf
$oDoc.calling.ready($retVal)
EndFunc
и есть JavaScript функция:
JavaScript:
<head>
<script>
document.calling = {"name":"","attr":"","ready":function(){}}
document.CallBack = function(name){
var tmp = function(){
var name = arguments.callee.name;
var attr = "";
if(arguments.length > 1){
for(var i = 0;i<arguments.length;i++){
attr += arguments[i].toString()
if(i < arguments.length - 1) attr += "&";
}
}else if(arguments.length == 1){
attr = arguments[0].toString();
}
document.calling.name = name
document.calling.attr = attr
document.fireEvent("ondataavailable");
return document.calling
}
tmp.name = name
document[name] = tmp
}
</script>
</head>
Работает эта "бодяга" так:
1)AutoIt регистрирует свою функцию вызовом $oDoc.CallBack("_title") или $oDoc.CallBack(StringLower(FuncName(_title)))
2)JavaScript создает функцию с этим именем и привязывает ее к document'у
3)Во время вызова JavaScript'ом этой функции (document._title("некий текст");) все параметры собираются в строку с разделителем '&' и записываются в document.calling.attr название функции передается в document.calling.name и вызывается событие ondataavailable
4)AutoIt получает событие обрабатывает параметры document.calling.attr и с ними методом Call вызывает функцию с именем document.calling.name
Вопрос есть другой способ? я уже 3 день ищу и не могу найти!!! на вашем форуме есть толь ветки типа "как нажать кнопку в IE"!!! если есть ссылки на стороние ресурсы где есть инфа скинте пожалуйста!!! Зарание благодарен!!!
Добавлено:
Сообщение автоматически объединено:
Неужели не кто ни знает? :(