Как получить перенаправленный URL в C # WebBrowser Control - PullRequest
2 голосов
/ 18 февраля 2010

У меня есть веб-страница, которая загружается, выполняет некоторые вычисления и затем перенаправляет JavaScript на другую веб-страницу.Это выглядит примерно так:

http://www.mysite.com/startpage.html

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
$(document).ready(function() {
    window.location = "http://www.mynewurl.com";
});
</head>
<body>
Something
</body>
</html>

Теперь у меня есть приложение asp.net MVC, которое загружает элемент управления WebBrowser и мою цель должен иметь возможность извлечь http://www.mynewurl.com из моего элемента управления C # WebBrowser.

Мой код WebBrowser выглядит следующим образом:

WebBrowser webBrowser = new WebBrowser
                                    {
                                        ScrollBarsEnabled = false,
                                        Size = new Size(Width, Height),
                                        ScriptErrorsSuppressed = true
                                    };

    webBrowser.NewWindow += WebBrowserNewWindow;
    webBrowser.Navigate("http://www.mysite.com/startpage.html");


    //wait for it to load
    while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
    {
        Application.DoEvents();
    }

    Uri myUrl = webBrowser.Url;  //This is how I have been trying to get it.

Поэтому, когда я загружаю свой элемент управления webBrowser, я отправляю его на http://www.mysite.com/startpage.html.Это делает редирект javascript на http://www.mynewurl.com.Я хочу как-то зафиксировать этот URL в моем коде c #.

Есть идеи, как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 02 января 2012

Я решил ответить на это сообщение - даже прошло почти 2 года с тех пор, как оно было опубликовано - так как оно указано в топ-результатах в поисковых системах (например, в Google), но без предоставления мне решения ...

После некоторых поисков я нашел решение этого вопроса, которое можно найти здесь:

http://connect.microsoft.com/VisualStudio/feedback/details/115195/webbrowser-newwindow-event-does-not-give-the-url-of-the-new-window-in-eventargs#details

Это решает проблему получения URL-адреса нового окна, когда для свойства Cancel объекта CancelEventArgs установлено значение TRUE.

С надеждой, что это может помочь другим людям, с этой проблемой, так как она не была решена на платформе .NET ...

0 голосов
/ 23 февраля 2010

httpWebRequest.Referer что ли? Или, возможно, добавить любые данные, которые вам нужны, в виде строки запроса.

...