Господа, подскажите, пожалуйста, что это за Dispatch такой мне приходит в propput при
вызове вот чего:
function func(){}
function func2(){
....
someObject.someProperty=func;
....
}
someProperty — типа VARIANT.
Что же это за объект-то у функции в HTML модели? Чей Dispatch мне присался?
Попробовал у него попросить IHTMLScriptElement — не получилось,
да и не удивительно.
DNS>someProperty — типа VARIANT.
DNS>Что же это за объект-то у функции в HTML модели? Чей Dispatch мне присался? DNS>Попробовал у него попросить IHTMLScriptElement — не получилось, DNS>да и не удивительно.
DNS>Спасибо.
Этот Dispatch, скорее всего пришел из ActiveScripting, а не из HTML, т.к. IE использует
ActiveScripting для работы со скриптами на странице. Очень может быть, что через этот диспач
можно вызвать саму func().
Здравствуйте al, Вы писали:
al>Этот Dispatch, скорее всего пришел из ActiveScripting, а не из HTML, т.к. IE использует al>ActiveScripting для работы со скриптами на странице. Очень может быть, что через этот диспач al>можно вызвать саму func().
Не может быть, точно. Я об этом читал. Где не помню. Может даже здесь, а может в одном из наших журналов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте al, Вы писали:
al>Этот Dispatch, скорее всего пришел из ActiveScripting, а не из HTML, т.к. IE использует al>ActiveScripting для работы со скриптами на странице. Очень может быть, что через этот диспач al>можно вызвать саму func().
Вот ведь как интересно! А как её вызвать? Какой у нее будет DISPID?
А параметры как узнать? А что возвращает?
DNS>someProperty — типа VARIANT.
DNS>Что же это за объект-то у функции в HTML модели? Чей Dispatch мне присался? DNS>Попробовал у него попросить IHTMLScriptElement — не получилось, DNS>да и не удивительно.
DNS>Спасибо.
Вобщем, это объект JScript-а, называется Function.
Вот как по полученному IDispatch произвести вызов я так и не просёк :(
Здравствуйте VladD2, Вы писали:
VD>Здравствуйте al, Вы писали:
al>>Этот Dispatch, скорее всего пришел из ActiveScripting, а не из HTML, т.к. IE использует al>>ActiveScripting для работы со скриптами на странице. Очень может быть, что через этот диспач al>>можно вызвать саму func().
VD>Не может быть, точно. Я об этом читал. Где не помню. Может даже здесь, а может в одном из наших журналов.
Здравствуйте DNS, Вы писали:
DNS>Здравствуйте retalik, Вы писали:
R>>Конечно, здесь! У Тимофея, "Как вызвать скрипт из страницы": R>>http://rsdn.ru/qna/?inet/wbscript.xml
DNS>Не совсем то, конечно. Скрипт по имени функции я могу вызвать без проблем.
где процесс рассматривается с обратной стороны (т.е., как создать такую функцию). Оттуда следует, что это тупой IDispatch (я думаю, что это IDispathEx), вызов Invoke у которого и приведет к вызову функции.
Здравствуйте retalik, Вы писали:
R>Здравствуйте DNS, Вы писали:
DNS>>Здравствуйте retalik, Вы писали:
R>>>Конечно, здесь! У Тимофея, "Как вызвать скрипт из страницы": R>>>http://rsdn.ru/qna/?inet/wbscript.xml
DNS>>Не совсем то, конечно. Скрипт по имени функции я могу вызвать без проблем.
R>Да, точно, поторопился :(
R>Но (опять у Тимофея :) есть статья: R>http://rsdn.ru/article/?inet/dhtml.xml
R>где процесс рассматривается с обратной стороны (т.е., как создать такую функцию). Оттуда следует, что это тупой IDispatch (я думаю, что это IDispathEx), вызов Invoke у которого и приведет к вызову функции.
Опять не то. :)) Мне нужно не обрабатывать события страницы у себя, а заставить страницу обрабатывать мои события.
Т.е.
MyObject.OnMyEvent = someScriptFunction;
Так вот, когда я пишу нечно подобное, то в метод put_OnMyEvent приходит VARIANT VT_DISPATCH.
Я уже знаю, что это объект Function из JScripta, а теперь как её вызвать в момент наступления
события — я не знаю. Если Invoke-ом, то какой DISPID?
Здравствуйте DNS, Вы писали:
DNS>Опять не то. :)) Мне нужно не обрабатывать события страницы у себя, а заставить страницу обрабатывать мои события. DNS>Т.е. DNS>
DNS>Так вот, когда я пишу нечно подобное, то в метод put_OnMyEvent приходит VARIANT VT_DISPATCH. DNS>Я уже знаю, что это объект Function из JScripta, а теперь как её вызвать в момент наступления DNS>события — я не знаю. Если Invoke-ом, то какой DISPID?
То, то :)
Приходит IDispatchEx (см. MSDN), но можно работать и с IDispatch.
А Invoke вызывать с DISPID_VALUE. Это и было в статье, на которую я дал линк.
Здравствуйте retalik, Вы писали:
R>То, то :) R>Приходит IDispatchEx (см. MSDN), но можно работать и с IDispatch. R>А Invoke вызывать с DISPID_VALUE. Это и было в статье, на которую я дал линк.
А я и не заметил что там про такое написано.. :)
Благодарствую!
Здравствуйте, DNS, Вы писали:
DNS>Здравствуйте DNS, Вы писали:
DNS>>Господа, подскажите, пожалуйста, что это за Dispatch такой мне приходит в propput при DNS>>вызове вот чего:
DNS>>
DNS>>someProperty — типа VARIANT.
DNS>>Что же это за объект-то у функции в HTML модели? Чей Dispatch мне присался? DNS>>Попробовал у него попросить IHTMLScriptElement — не получилось, DNS>>да и не удивительно.
DNS>>Спасибо.
DNS>Вобщем, это объект JScript-а, называется Function.
Вызвать ф-ю элементарно, получаешь е еIDispatch, запрашиваешь DISPID метода Call и вызываешь у нее этот метоод. Все. DNS>Вот как по полученному IDispatch произвести вызов я так и не просёк