我正在开发一个项目,其中 JavaScript 和托管代码之间有很多交互。事实上,我需要 JS 应用程序从一开始就与页面中的 Silverlight 应用程序进行交互。所以我需要在执行 JS 代码之前加载 Silverlight 应用程序。
但是在这样做时,大多数时候我会收到由于尚未加载 Silverlight 应用程序而未找到对象的错误。所以我需要在 JS 执行之前加载 Silverlight。
有没有办法可以停止 JS 应用程序,直到 Silverlight 加载然后开始执行?
最佳答案
首先,您需要向应用程序的 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
关于javascript - 如何在 Silverlight 小程序加载后触发 JavaScript 执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305206/