我正在开发一个项目,我在JavaScript和托管代码之间进行了大量的交互。实际上,我需要JS应用程序从一开始就在页面中与Silverlight应用程序进行交互。所以我需要在JS代码执行之前加载Silverlight应用程序。
但是这样做的时候,大多数时候我都会收到错误,因为尚未加载Silverlight应用程序而找不到该对象。所以我需要在JS执行之前加载Silverlight。
有没有办法在Silverlight加载然后开始执行之前停止JS应用程序?
答案 0 :(得分: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