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");
}
我尝试在我的应用程序中使用 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");
}