Вызовите методы Silverlight из Javascript по имени - PullRequest
1 голос
/ 19 октября 2010

Можно ли получить ссылку на метод Silverlight исключительно по имени из Javascript, а затем вызвать его?С чистыми объектами Javascript вы бы выглядели примерно так:

var f = theObj["theMethodName"];    
f.call(theObj, "an arg");

Но обработка объекта Silverlight как ассоциативного массива не выглядит работой.

Полагаю, я мог бы использовать Eval в качестве последнего средства, но я бы предпочел этого избежать.

Ответы [ 3 ]

2 голосов
/ 19 октября 2010

Вопрос в том, как вызвать функцию Silverlight из Javascript по имени.Вы можете легко вызывать методы для объекта напрямую, включив метод для сценариев с использованием атрибута ScriptableMember , но вы не можете напрямую вызывать его как строку.

Я думаю, что вы застрялис оценкой.

1 голос
/ 19 октября 2010

HtmlPage.Window.Invoke ("theMethodName", "An arg");

OR

var obj = HtmlPage.Document.GetElementByID ("theObj"); obj.Invoke ("theMethodName", "Arg");

...

Ах, перечитайте это ... нет, нет доступа к API отражения. Вы должны были бы разоблачить это формально. Это все еще управляемый объект ... просто представленный как «объект» в JScript. Так что не то же самое, что объект-прототип.

0 голосов
/ 22 марта 2011

Это работает:

theObj["theMethodName"]("an arg");    

Но это не так:

theObj["theMethodName"].apply(null, "an arg");

по крайней мере мне не удалось использовать apply (и позвонить): (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...