2010-07-22 63 views
1

我正在开发一个项目,我在JavaScript和托管代码之间进行了很多交互。事实上,我需要JS应用程序从头开始直接与页面中的Silverlight应用程序进行交互。所以我需要在JS代码执行之前加载Silverlight应用程序。如何在Silverlight小程序加载后触发JavaScript执行?

但是,虽然这样做,大多数时候我得到的错误,没有找到该对象,因为Silverlight应用程序尚未加载。所以我需要在JS执行之前加载Silverlight。

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

回答

1

首先,你需要一个事件处理程序添加到您的应用程序的Loaded事件,从事件处理程序,你可以这样调用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

+0

忘了提及,我从蒂姆豪雅的帖子中得到这个:http://timheuer.com/blog/archive/2008/03/09/calling-javascript-functions-from -silverlight-2.aspx – 2010-07-22 05:36:30

相关问题