Я использую C# .NET Framework 2.0
для создания приложения, которое может забирать выбранную часть элемента DOM пользователем в элементе управления WebBrowser.
Пока я могу выбирать html-теги и их атрибутыв HTML в элементе управления WebBrowser.
//adding event when user mouse down or focus out
webBrowser1.Document.MouseDown += new HtmlElementEventHandler(myMouseDown);
И эти события будут выводить информацию DOM в список и т. д.
private void myMouseDown(object sender, HtmlElementEventArgs e)
{
HtmlElement tag = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
txtRecord.Items.Add("TagName=" + tag.TagName);
txtRecord.Items.Add("id=" + tag.GetAttribute("id"));
txtRecord.Items.Add("name=" + tag.GetAttribute("name"));
txtRecord.Items.Add("type=" + tag.GetAttribute("type"));
txtRecord.Items.Add("value=" + tag.GetAttribute("value"));
txtRecord.Items.Add("class=" + tag.GetAttribute("class"));
txtRecord.Items.Add("inner text=" + tag.InnerText);
}
Но тогда события mouseDown не работают в iFrame.
Когда я щелкаю внутри iFrame, он не выплевывает информацию DOM.
Можно ли получить информацию DOM, щелкнув по этому месту в iFrame?
ОБНОВЛЕНИЕ:
Найден объект HtmlWindow и применена та же логика событий.
HtmlWindow iFrame;
iFrame = webBrowser1.Document.Window.Frames[0];
iFrame.Document.MouseDown += new HtmlElementEventHandler(myMouseDown);
Но затем в последней строке выдается UnauthorizedAccessException: (*