CreateGlobalJavascriptObject 问题

CreateGlobalJavascriptObject issues

我尝试在我的应用程序中使用 CreateGlobalJavascriptObject,但遇到了问题。代码:

WebCore.Initialize(WebConfig.Default);
webControl.Source = new Uri("file:///res/login.html");
webControl.Update();
JSObject myGlobalObject = webControl.CreateGlobalJavascriptObject("object");

输出:System.AccessViolationException in Awesomium.Windows.Forms.dll.

之后我尝试将 webView.CreateGlobalJavascriptObject("object"); 放入默认的 Awesomium WinForms 示例项目中:

    public WebForm()
    {
        WebSession session = InitializeCoreAndSession();
        InitializeComponent();
        InitializeView( WebCore.CreateWebView( this.ClientSize.Width, this.ClientSize.Height, session ) );
        webView.CreateGlobalJavascriptObject("object");
    }

输出:System.NullReferenceException in Awesomium.Core.dll.

我该如何解决这些问题?

这个问题已经在 answers.awesomium.com 上得到了回答。我也会 post 在这里回答,以便它可以帮助其他人:

您必须等到框架加载完毕。使用 IWebView.LoadingFrameComplete 事件:

webView.LoadingFrameComplete += OnLoadingFrameComplete;

您的事件处理程序可能与此类似:

private void OnLoadingFrameComplete(object sender, FrameEventArgs e)
{
   JSObject myGlobalObject= webControl.CreateGlobalJavascriptObject("myObject");
}