Awesomium "LoadingFrameComplete" 发射次数过多
Awesomium "LoadingFrameComplete" is firing too many times
最近才开始修补 Awesomium,它非常酷,而且比用于 WinForms 的普通 webBrowser 要好得多。
但是,当我使用 _LoadingFrameComplete 方法确定页面是否已加载时,它似乎触发了 10 次以上(在 Facebook 上使用时,导航到 google.com 时触发了 2 次)
我正在尝试获取 webBrowser1_DocumentCompleted 的类似方法(在文档完成后仅触发一次)。
这是'me'的问题,还是我检查网站是否完全加载完成的方法不对。
我使用的是 Visual C# 2010 版
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Debugging_Problems
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string searchURL = textBox1.Text;
webControl1.Source = new Uri(searchURL);
}
private void Awesomium_Windows_Forms_WebControl_LoadingFrameComplete(object sender, Awesomium.Core.FrameEventArgs e)
{
richTextBox1.AppendText("Completed.\n");
}
}
}
尝试将 if(e.IsMainFrame) { .... } 放入您的 LoadingFrameComplete 事件处理程序中,并且只将您的代码放在那里。 – 乔恩
这就是答案。谢谢。
您需要使用 IsMainFrame
private void Awesomium_Windows_Forms_WebControl_LoadingFrameComplete(object sender, Awesomium.Core.FrameEventArgs e)
{
if (e.IsMainFrame)
{
richTextBox1.AppendText("Completed.\n");
}
}
最近才开始修补 Awesomium,它非常酷,而且比用于 WinForms 的普通 webBrowser 要好得多。
但是,当我使用 _LoadingFrameComplete 方法确定页面是否已加载时,它似乎触发了 10 次以上(在 Facebook 上使用时,导航到 google.com 时触发了 2 次)
我正在尝试获取 webBrowser1_DocumentCompleted 的类似方法(在文档完成后仅触发一次)。
这是'me'的问题,还是我检查网站是否完全加载完成的方法不对。
我使用的是 Visual C# 2010 版
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Debugging_Problems
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string searchURL = textBox1.Text;
webControl1.Source = new Uri(searchURL);
}
private void Awesomium_Windows_Forms_WebControl_LoadingFrameComplete(object sender, Awesomium.Core.FrameEventArgs e)
{
richTextBox1.AppendText("Completed.\n");
}
}
}
尝试将 if(e.IsMainFrame) { .... } 放入您的 LoadingFrameComplete 事件处理程序中,并且只将您的代码放在那里。 – 乔恩
这就是答案。谢谢。
您需要使用 IsMainFrame
private void Awesomium_Windows_Forms_WebControl_LoadingFrameComplete(object sender, Awesomium.Core.FrameEventArgs e)
{
if (e.IsMainFrame)
{
richTextBox1.AppendText("Completed.\n");
}
}