Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Silverlight中接收来自HtmlPage主机的回调_Javascript_Silverlight - Fatal编程技术网

Javascript 在Silverlight中接收来自HtmlPage主机的回调

Javascript 在Silverlight中接收来自HtmlPage主机的回调,javascript,silverlight,Javascript,Silverlight,我希望在不使用ScriptableAttribute的情况下接收从Javascript代码到Silverlight主机的回调。我以前看过,但我不知道他们是怎么做的。有人有什么想法吗?谢谢使用非常简单:- HtmlPage.Window.Invoke("someJavascriptFunc", "Hello", "World"); 在承载silverlight的页面的javascript中,有:- function someJavascriptFunc(p1, p2) { ale

我希望在不使用ScriptableAttribute的情况下接收从Javascript代码到Silverlight主机的回调。我以前看过,但我不知道他们是怎么做的。有人有什么想法吗?谢谢

使用非常简单:-

 HtmlPage.Window.Invoke("someJavascriptFunc", "Hello", "World");
在承载silverlight的页面的javascript中,有:-

 function someJavascriptFunc(p1, p2)
 {
     alert(p1 + ' ' + p2);
 }
编辑:肯是对的,上面的说法是错误的

假设您在Silverlight中具有此功能:-

string GetStuff(string name)
{
     return "Hello " + name;
}
现在,您可以将此函数设置为javascript可用,如下所示:-

HtmlPage.Window.SetProperty("sayHello", new Func<string, string>(GetStuff));    
alert(sayHello("Fred"));

如果您使用的是事件,理论上,您可以使用AttachEvent订阅事件。这与回调并不完全相同,但很接近


警告:我还没有在基于Mozilla的浏览器上测试AttachEvent(其中适当的JS命令是“addEventListener()”而不是“AttachEvent()”),而且我在IE中也很难让AttachEvent()可靠地工作。所以我总是使用[ScriptableMember]属性,并从JS调用它。你不想用这个有什么原因吗?(我很想知道是否有人有更好的想法。)

我认为这是相反的方向:从SL到JS。我认为他想要另一种方式,从JS到SL。我以前从未见过这种技术。美好的