是否可以从Javascript中纯粹按名称引用Silverlight方法,然后调用它?用纯JavaScript对象,你会是这样的:使用Javascript从名称中调用Silverlight方法
var f = theObj["theMethodName"];
f.call(theObj, "an arg");
但治疗的Silverlight对象作为关联数组似乎并不工作。
我猜我可以使用Eval作为最后的手段,但我宁愿避免它。
是否可以从Javascript中纯粹按名称引用Silverlight方法,然后调用它?用纯JavaScript对象,你会是这样的:使用Javascript从名称中调用Silverlight方法
var f = theObj["theMethodName"];
f.call(theObj, "an arg");
但治疗的Silverlight对象作为关联数组似乎并不工作。
我猜我可以使用Eval作为最后的手段,但我宁愿避免它。
HtmlPage.Window.Invoke(“theMethodName”,“An arg”);
OR
VAR OBJ = HtmlPage.Document.GetElementByID( “theObj”); obj.Invoke(“theMethodName”,“an Arg”);
...
嗯,重新阅读它......没有,没有进入反射API。你必须正式公开它。它仍然是一个托管对象......只是在JScript中作为“对象”公开。所以与原型对象不一样。
问题是如何从Javascript调用名称的Silverlight函数。您可以通过启用using the ScriptableMember attribute脚本的方法直接轻松地调用对象上的方法,但不能直接将其作为字符串调用。
我认为你被eval卡住了。
这工作:
theObj["theMethodName"]("an arg");
但这并不:
theObj["theMethodName"].apply(null, "an arg");
至少我没使用应用(和呼叫):(
AFAICT这是调用的Javascript来自Silverlight,我以另一种方式 - 从javascript调用Silverlight – 2010-10-18 21:46:58