Dispatch скриптовой функции
От: DNS Россия  
Дата: 15.10.01 11:29
Оценка:
Господа, подскажите, пожалуйста, что это за Dispatch такой мне приходит в propput при
вызове вот чего:

function func(){}

function func2(){
  ....
  someObject.someProperty=func;
  ....
}


someProperty — типа VARIANT.

Что же это за объект-то у функции в HTML модели? Чей Dispatch мне присался?
Попробовал у него попросить IHTMLScriptElement — не получилось,
да и не удивительно.

Спасибо.
Д.Н.С.
Re: Dispatch скриптовой функции
От: DNS Россия  
Дата: 15.10.01 11:30
Оценка:
Здравствуйте DNS, Вы писали:

DNS>
DNS>function func(){}

DNS>function func2(){
DNS>  ....
DNS>  someObject.someProperty=func;
DNS>  ....
DNS>}
DNS>


Забыл написать, что этот код — JScript.
Д.Н.С.
Re: Dispatch скриптовой функции
От: al Россия  
Дата: 15.10.01 15:48
Оценка:
Здравствуйте DNS, Вы писали:

DNS>Господа, подскажите, пожалуйста, что это за Dispatch такой мне приходит в propput при

DNS>вызове вот чего:

DNS>
DNS>function func(){}

DNS>function func2(){
DNS>  ....
DNS>  someObject.someProperty=func;
DNS>  ....
DNS>}
DNS>


DNS>someProperty — типа VARIANT.


DNS>Что же это за объект-то у функции в HTML модели? Чей Dispatch мне присался?

DNS>Попробовал у него попросить IHTMLScriptElement — не получилось,
DNS>да и не удивительно.

DNS>Спасибо.


Этот Dispatch, скорее всего пришел из ActiveScripting, а не из HTML, т.к. IE использует
ActiveScripting для работы со скриптами на странице. Очень может быть, что через этот диспач
можно вызвать саму func().


Re[2]: Dispatch скриптовой функции
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.10.01 16:45
Оценка:
Здравствуйте al, Вы писали:

al>Этот Dispatch, скорее всего пришел из ActiveScripting, а не из HTML, т.к. IE использует

al>ActiveScripting для работы со скриптами на странице. Очень может быть, что через этот диспач
al>можно вызвать саму func().

Не может быть, точно. Я об этом читал. Где не помню. Может даже здесь, а может в одном из наших журналов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Dispatch скриптовой функции
От: DNS Россия  
Дата: 16.10.01 12:36
Оценка:
Здравствуйте al, Вы писали:

al>Этот Dispatch, скорее всего пришел из ActiveScripting, а не из HTML, т.к. IE использует

al>ActiveScripting для работы со скриптами на странице. Очень может быть, что через этот диспач
al>можно вызвать саму func().

Вот ведь как интересно! А как её вызвать? Какой у нее будет DISPID?
А параметры как узнать? А что возвращает?

Ох сколько вопросов... :)
Д.Н.С.
Re[3]: Dispatch скриптовой функции
От: DNS Россия  
Дата: 16.10.01 13:40
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Не может быть, точно. Я об этом читал. Где не помню. Может даже здесь, а может в одном из наших журналов.


А я не читал и не знаю где почитать :(
ПЛИИИЗЗ!! Total recall :)
Д.Н.С.
Re[4]: Dispatch скриптовой функции
От: al Россия  
Дата: 16.10.01 13:59
Оценка:
Информация по ActiveScripting есть info в MSDN
Есть еще книжка на http://pcbook.51soft.com


Re: Dispatch скриптовой функции
От: DNS Россия  
Дата: 17.10.01 10:47
Оценка:
Здравствуйте DNS, Вы писали:

DNS>Господа, подскажите, пожалуйста, что это за Dispatch такой мне приходит в propput при

DNS>вызове вот чего:

DNS>
DNS>function func(){}

DNS>function func2(){
DNS>  ....
DNS>  someObject.someProperty=func;
DNS>  ....
DNS>}
DNS>


DNS>someProperty — типа VARIANT.


DNS>Что же это за объект-то у функции в HTML модели? Чей Dispatch мне присался?

DNS>Попробовал у него попросить IHTMLScriptElement — не получилось,
DNS>да и не удивительно.

DNS>Спасибо.


Вобщем, это объект JScript-а, называется Function.
Вот как по полученному IDispatch произвести вызов я так и не просёк :(
Д.Н.С.
Re[3]: Dispatch скриптовой функции
От: retalik www.airbandits.com/
Дата: 17.10.01 10:56
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Здравствуйте al, Вы писали:


al>>Этот Dispatch, скорее всего пришел из ActiveScripting, а не из HTML, т.к. IE использует

al>>ActiveScripting для работы со скриптами на странице. Очень может быть, что через этот диспач
al>>можно вызвать саму func().

VD>Не может быть, точно. Я об этом читал. Где не помню. Может даже здесь, а может в одном из наших журналов.


Конечно, здесь! У Тимофея, "Как вызвать скрипт из страницы":
http://rsdn.ru/qna/?inet/wbscript.xml
Успехов,
Виталий.
Re[4]: Dispatch скриптовой функции
От: DNS Россия  
Дата: 17.10.01 11:05
Оценка:
Здравствуйте retalik, Вы писали:

R>Конечно, здесь! У Тимофея, "Как вызвать скрипт из страницы":

R>http://rsdn.ru/qna/?inet/wbscript.xml

Не совсем то, конечно. Скрипт по имени функции я могу вызвать без проблем.
Д.Н.С.
Re[5]: Dispatch скриптовой функции
От: retalik www.airbandits.com/
Дата: 17.10.01 11:42
Оценка:
Здравствуйте DNS, Вы писали:

DNS>Здравствуйте retalik, Вы писали:


R>>Конечно, здесь! У Тимофея, "Как вызвать скрипт из страницы":

R>>http://rsdn.ru/qna/?inet/wbscript.xml

DNS>Не совсем то, конечно. Скрипт по имени функции я могу вызвать без проблем.


Да, точно, поторопился :(

Но (опять у Тимофея :) есть статья:
http://rsdn.ru/article/?inet/dhtml.xml
Автор(ы): Тимофей Чадов
Дата: 19.08.2001

где процесс рассматривается с обратной стороны (т.е., как создать такую функцию). Оттуда следует, что это тупой IDispatch (я думаю, что это IDispathEx), вызов Invoke у которого и приведет к вызову функции.
Успехов,
Виталий.
Re[6]: Dispatch скриптовой функции
От: DNS Россия  
Дата: 17.10.01 12:49
Оценка:
Здравствуйте 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
Автор(ы): Тимофей Чадов
Дата: 19.08.2001

R>где процесс рассматривается с обратной стороны (т.е., как создать такую функцию). Оттуда следует, что это тупой IDispatch (я думаю, что это IDispathEx), вызов Invoke у которого и приведет к вызову функции.

Опять не то. :)) Мне нужно не обрабатывать события страницы у себя, а заставить страницу обрабатывать мои события.
Т.е.
  MyObject.OnMyEvent = someScriptFunction;


Так вот, когда я пишу нечно подобное, то в метод put_OnMyEvent приходит VARIANT VT_DISPATCH.
Я уже знаю, что это объект Function из JScripta, а теперь как её вызвать в момент наступления
события — я не знаю. Если Invoke-ом, то какой DISPID?

Вот такая история.

Спасибо.
Д.Н.С.
Re[7]: Dispatch скриптовой функции
От: retalik www.airbandits.com/
Дата: 18.10.01 01:46
Оценка:
Здравствуйте DNS, Вы писали:

DNS>Опять не то. :)) Мне нужно не обрабатывать события страницы у себя, а заставить страницу обрабатывать мои события.

DNS>Т.е.
DNS>
DNS>  MyObject.OnMyEvent = someScriptFunction;
DNS>


DNS>Так вот, когда я пишу нечно подобное, то в метод put_OnMyEvent приходит VARIANT VT_DISPATCH.

DNS>Я уже знаю, что это объект Function из JScripta, а теперь как её вызвать в момент наступления
DNS>события — я не знаю. Если Invoke-ом, то какой DISPID?

То, то :)
Приходит IDispatchEx (см. MSDN), но можно работать и с IDispatch.
А Invoke вызывать с DISPID_VALUE. Это и было в статье, на которую я дал линк.
Успехов,
Виталий.
Re[8]: Dispatch скриптовой функции
От: DNS Россия  
Дата: 18.10.01 07:41
Оценка:
Здравствуйте retalik, Вы писали:

R>То, то :)

R>Приходит IDispatchEx (см. MSDN), но можно работать и с IDispatch.
R>А Invoke вызывать с DISPID_VALUE. Это и было в статье, на которую я дал линк.

А я и не заметил что там про такое написано.. :)
Благодарствую!
Д.Н.С.
Re[2]: Dispatch скриптовой функции
От: Metatron  
Дата: 12.10.05 16:40
Оценка:
Здравствуйте, DNS, Вы писали:

DNS>Здравствуйте DNS, Вы писали:


DNS>>Господа, подскажите, пожалуйста, что это за Dispatch такой мне приходит в propput при

DNS>>вызове вот чего:

DNS>>
DNS>>function func(){}

DNS>>function func2(){
DNS>>  ....
DNS>>  someObject.someProperty=func;
DNS>>  ....
DNS>>}
DNS>>


DNS>>someProperty — типа VARIANT.


DNS>>Что же это за объект-то у функции в HTML модели? Чей Dispatch мне присался?

DNS>>Попробовал у него попросить IHTMLScriptElement — не получилось,
DNS>>да и не удивительно.

DNS>>Спасибо.


DNS>Вобщем, это объект JScript-а, называется Function.


Вызвать ф-ю элементарно, получаешь е еIDispatch, запрашиваешь DISPID метода Call и вызываешь у нее этот метоод. Все.
DNS>Вот как по полученному IDispatch произвести вызов я так и не просёк
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.