Можно ли подобрать элемент DOM внутри iFrame по клику? - PullRequest
0 голосов
/ 23 мая 2011

Я использую 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: (*

1 Ответ

0 голосов
/ 23 мая 2011

Я узнал, почему я получаю UnauthorizedAccessException .Это потому, что моя главная страница http://localhost/index.html, в то время как iFrame src нарушает безопасность межкадрового скриптинга в соответствии с:

http://msdn.microsoft.com/en-us/library/ms171715.aspx
http://msdn.microsoft.com/en-us/library/ms533028.aspx

Я изменил iFrame src для использования того же самогодомен, http://localhost/secondPage.html

тогда он начинает работать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...