С# управление веб-браузером, навигация при наведении динамического меню?

У меня есть форма в моем приложении winforms, которая действует как встроенный браузер. Он использует элемент управления веб-браузером .net. Довольно просто. У меня есть текстовое поле в качестве адресной строки и кнопки для управления. Когда я перехожу на свой веб-сайт, мой веб-сайт использует элемент управления меню .net для отображения всплывающего меню. Когда я навожу курсор на меню (используя форму браузера), адресная строка меняется на: http://domainname/WebResource.axd?etc/etc/etc, неожиданно

Я перехватываю событие webbrowser_navigating и устанавливаю для свойства Text адресной строки значение e.Url.ToString().

Конечно, это не ожидаемый результат, и IE этого не делает. Что мне не хватает?

ОБНОВИТЬ:

Вот единственный способ, которым я мог придумать, как это сделать:

                string url = e.Url.ToString().ToLower();

                // Only change the address bar under certain circumstances
                // Filter out some navigating changes
                if ((StringUtil.Empty(e.TargetFrameName) || e.TargetFrameName.ToLower() == "_blank") &&
                    !url.Contains("webresource.axd") &&
                    !url.Contains("javascript:") &&
                    !url.Contains("about:blank"))
                {
                    toolStripAddress.Text = e.Url.ToString();
                }

person Rodney Burton    schedule 02.07.2010    source источник
comment
какой код (javascript?) вызывает меню на странице?   -  person Sanjay Manohar    schedule 02.07.2010
comment
Некоторый код сделает вещи более ясными.   -  person IsmailS    schedule 02.07.2010
comment
Не знаю, не писал :-) Он использует стандартное меню .NET, встроенное в .NET версии 3.1SP1.   -  person Rodney Burton    schedule 02.07.2010
comment
код .net или js, который выводит меню на странице, явно запускает это событие Navigating. Возможно, он меняет текст на странице и вызывает метод DocumentText. Возможно, вам потребуется проверить свойства WebBrowserNavigatingEventArgs.TargetFrameName или Url, чтобы отфильтровать их.   -  person Sanjay Manohar    schedule 02.07.2010
comment
Да, я уже проверил свойство e.TargetFrameName, и оно пустое. Тем не менее, нет ли более простого способа сделать это, кроме проверки свойства Url и ручной фильтрации изменений WebResource? т.е. если он сделает это с моим веб-сайтом, что он будет делать, когда пользователь просматривает другой веб-сайт, использующий технологию типа ajax, которая не находится на платформе .NET?   -  person Rodney Burton    schedule 02.07.2010
comment
Фильтрация изменений WebResource.axd устранила непосредственную проблему.   -  person Rodney Burton    schedule 02.07.2010


Ответы (1)


См. комментарий Санджая выше.

person Rodney Burton    schedule 02.07.2010