我尝试在我的应用中使用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。
我如何解决这些问题?
答案 0 :(得分:1)
answers.awesomium.com已经回答了同样的问题。我也会在这里发布答案,以便它可以帮助其他人:
你必须等到画面呈现出来。使用IWebView.LoadingFrameComplete事件:
webView.LoadingFrameComplete += OnLoadingFrameComplete;
您的事件处理程序可能与此类似:
private void OnLoadingFrameComplete(object sender, FrameEventArgs e)
{
JSObject myGlobalObject= webControl.CreateGlobalJavascriptObject("myObject");
}