c# – DocumentReady事件中的文档未就绪?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – DocumentReady事件中的文档未就绪?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1292字,纯文字阅读大概需要2分钟。
内容图文
![c# – DocumentReady事件中的文档未就绪?](/upload/InfoBanner/zyjiaocheng/824/e930b4473c8b48c6b654dcf63a4f32a7.jpg)
我使用Awesomium 1.7.0.5来加载页面,填充一些文本框并单击按钮.我试图使用此线程中的示例填充文本框:http://answers.awesomium.com/questions/857/webcontrol-type-in-webbrowser.html
这是我的代码(我正在使用WPF控件):
private void WbAwsOnDocumentReady(object sender, UrlEventArgs urlEventArgs)
{
if (wbAws == null || !wbAws.IsLive)
return;
//Thread.Sleep(555);
dynamic document = (JSObject)wbAws.ExecuteJavascriptWithResult("document");
if (document == null)
return;
using (document)
{
dynamic textbox = document.getElementById("email");
if (textbox == null)
return;
using (textbox)
{
textbox.value = "gaaffa";
}
}
}
它可以工作,但只能使用Thread.Sleep 0.1-0.5秒.否则,文档为空(非空)和/或文本框为空.
我该怎么办?为什么在DocumentReadyEvent中没有准备好?
解决方法:
这是我解决它的方式:
WbAws.LoadingFrameCompleted += onl oadingFrameCompleted;
WbAws.Source = new Uri("http://google.com");
private void onl oadingFrameCompleted(...)
{
if (webView == null || !webView.IsLive ||
webView.ParentView != null || !e.IsMainFrame)
return;
LoadingFrameCompleted -= onl oadingFrameCompleted;
// do something
}
LoadingFrameCompleted而不是DocumentReady,因为它不仅在我需要它时触发,而且在应用程序启动时触发,我在导航之前订阅它并在它之后取消订阅.还检查它是IsMainFrame.
编辑:但是使用此解决方案有时会抛出文档尚未就绪的异常.所以我也在使用Thread.Sleep等待它.
内容总结
以上是互联网集市为您收集整理的c# – DocumentReady事件中的文档未就绪?全部内容,希望文章能够帮你解决c# – DocumentReady事件中的文档未就绪?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。