Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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应用程序_Javascript_Silverlight_Interaction - Fatal编程技术网

Javascript 将参数传递给正在运行的silverlight应用程序

Javascript 将参数传递给正在运行的silverlight应用程序,javascript,silverlight,interaction,Javascript,Silverlight,Interaction,场景是我有一个HTML的项目列表;当我点击一个项目时,我使用JS动态创建HTML来加载一个silverlight应用程序,该应用程序传递特定的项目#(使用initParams);我的silverlight应用程序以一种很好的方式将其可视化。我在同一个页面上执行此操作,而不是加载一个新的网页,并且过渡是平滑的 我知道可以让silverlight在我的页面上调用JS函数(与我需要的相反)。我想我的JS函数也可以在silverlight中引发一个事件/调用一个方法,但不确定是如何实现的——有人尝试过吗

场景是我有一个HTML的项目列表;当我点击一个项目时,我使用JS动态创建HTML来加载一个silverlight应用程序,该应用程序传递特定的项目#(使用initParams);我的silverlight应用程序以一种很好的方式将其可视化。我在同一个页面上执行此操作,而不是加载一个新的网页,并且过渡是平滑的

我知道可以让silverlight在我的页面上调用JS函数(与我需要的相反)。我想我的JS函数也可以在silverlight中引发一个事件/调用一个方法,但不确定是如何实现的——有人尝试过吗?虽然解决方法是每次重新创建silverlight应用程序,但只要在现有加载的SL应用程序中引发一个事件就可以完美解决我的问题

问候
ewart。

您可以从JavaScript调用Silverlight应用程序中的方法。 看到这个了吗

您只需在silverlight应用程序中创建一个类,该类将自身注册为可从JS调用:

[ScriptableType]
public partial class SomeClass
{
    private bool mouseHeldDown = false;
    private Point moveMeOffset = new Point();

    public SomeClass()
    {
        HtmlPage.RegisterScriptableObject("SilverlightObject", this);
    }


    [ScriptableMember]
    public void DoThing(int x)
    {
      //do some stuff
    }
}
然后你可以从JS调用它

document.getElementById("mySilverlightControl").content.SilverlightObject.DoThing(5);