CreateGlobalJavascriptObject问题

时间:2015-01-23 02:02:14

标签: javascript c# winforms exception awesomium

我尝试在我的应用中使用CreateGlobalJavascriptObject,但有问题。代码:

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

输出: Awesomium.Windows.Forms.dll中的System.AccessViolationException。

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

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

输出:Awesomium.Core.dll中的 System.NullReferenceException。

我如何解决这些问题?

1 个答案:

答案 0 :(得分:1)

answers.awesomium.com已经回答了同样的问题。我也会在这里发布答案,以便它可以帮助其他人:

你必须等到画面呈现出来。使用IWebView.LoadingFrameComplete事件:

webView.LoadingFrameComplete += OnLoadingFrameComplete;

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

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