如何在Silverlight小程序加载后触发JavaScript执行?

如何在Silverlight小程序加载后触发JavaScript执行?,javascript,silverlight,javascript-events,Javascript,Silverlight,Javascript Events,我正在从事一个项目,在这个项目中,JavaScript和托管代码之间有很多交互。事实上,我需要JS应用程序从一开始就与页面中的Silverlight应用程序交互。因此,我需要在执行JS代码之前加载Silverlight应用程序 但是,在执行此操作时,大多数情况下,我都会遇到一个错误,即未找到对象,因为Silverlight应用程序尚未加载。所以我需要在JS执行之前加载Silverlight 有没有一种方法可以停止JS应用程序,直到Silverlight加载,然后开始执行?首先,您需要向应用程序加

我正在从事一个项目,在这个项目中,JavaScript和托管代码之间有很多交互。事实上,我需要JS应用程序从一开始就与页面中的Silverlight应用程序交互。因此,我需要在执行JS代码之前加载Silverlight应用程序

但是,在执行此操作时,大多数情况下,我都会遇到一个错误,即未找到对象,因为Silverlight应用程序尚未加载。所以我需要在JS执行之前加载Silverlight


有没有一种方法可以停止JS应用程序,直到Silverlight加载,然后开始执行?

首先,您需要向应用程序加载的事件添加一个事件处理程序,通过该事件处理程序,您可以像下面这样调用javascript函数:

using System.Windows.Browser;

namespace SilverlightApplication3
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(MainPage_Loaded);
        }
    void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        HtmlPage.Window.CreateInstance("SomeFunction", new string[] { "parameter1", "parameter2" });
    }
}
}


请注意,您需要System.Windows.Browser命名空间来使用HtmlPage

首先,您需要向应用程序的已加载事件添加事件处理程序,您可以通过该事件处理程序调用javascript函数,如下所示:

using System.Windows.Browser;

namespace SilverlightApplication3
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(MainPage_Loaded);
        }
    void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        HtmlPage.Window.CreateInstance("SomeFunction", new string[] { "parameter1", "parameter2" });
    }
}
}


请注意,您需要System.Windows.Browser名称空间来使用HtmlPage

忘记提及,我是从Tim Heuer的帖子中得到的:忘记提及,我是从Tim Heuer的帖子中得到的: