2010-07-22 18 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

相關問題