我想知道是否应该在使用AJAX的页面上触发BeforeNavigate2或DocumentComplete事件。例如谷歌地图。当我在地址栏中输入内容时,一切正常,但是当我移动地图并调整大小时,没有任何事情发生(DocumentComplete和BeforeNavigate2不会触发),但是数据会发送到Internet或从Internet发送。
答案 0 :(得分:0)
ajax中的a代表异步。这些事件响应同步方法完成而触发。由于可以在任何时候发出异步请求,浏览器无法知道它们何时全部完成。
答案 1 :(得分:0)
我认为你需要处理 ajax 请求,你可以处理DownloadBegin和DownloadComplete事件。
在代码中:
public int SetSite(object site)
{
if (site != null)
{
webBrowser = (WebBrowser)site;
webBrowser.DownloadComplete += new DWebBrowserEvents2_DownloadCompleteEventHandler(DownloadComplete);
webBrowser.DownloadBegin += new DWebBrowserEvents2_DownloadBeginEventHandler(DownloadBegin);
}
else
{
webBrowser.DownloadComplete += new DWebBrowserEvents2_DownloadCompleteEventHandler(DownloadComplete);
webBrowser.DownloadBegin += new DWebBrowserEvents2_DownloadBeginEventHandler(DownloadBegin);
webBrowser = null;
}
return 0;
}
活动:
private void DownloadBegin()
{
MessageBox.Show("Download Begin");
}
private void DownloadComplete()
{
MessageBox.Show("Download Complete");
}
这对我有用。
答案 2 :(得分:0)
我监控下载开始并下载完整事件以处理包含ajax代码的页面。 还需要程序逻辑来控制流程,例如设置/检查标志。