Управление веб-браузером - PullRequest
0 голосов
/ 29 февраля 2012

Я хотел бы сделать тест, сначала перенаправить на пустую страницу, а затем сразу после перенаправления на обычную страницу, но похоже, что он не делает второе перенаправление ...

Browser.Base = Constants.ParkInfoDirectory;    //  "ParkInfo" folder
string s = string.Format("{0}/section_{1}.html", _parkId, _parkPage);    
//  URL = "/ParkInfo/ti217/5" for page 5 of Rainier

string blank = string.Format("{0}/Blank.html", _parkId);
Browser.Navigate(new Uri(blank, UriKind.Relative));
this.Browser.UpdateLayout();
Browser.Navigate(new Uri(s, UriKind.Relative));
this.Browser.UpdateLayout();

Новая версия:

            string s = string.Format("{0}/section_{1}.html", _parkId, _parkPage);    //  URL = "/ParkInfo/ti217/5" for page 5 of Rainier
            string blank = string.Format("{0}/section_blank.html", _parkId);
            Uri blank_ = new Uri(blank, UriKind.Relative);
            Browser.Navigate(new Uri(blank, UriKind.Relative));
            Browser.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(Browser_Navigated);
            {
                if (e.Uri == blank_)
                {
                    Browser.Navigate(new Uri(s, UriKind.Relative));
                }
            };
            Browser.Navigate(blank_);

1 Ответ

2 голосов
/ 29 февраля 2012

Вы вызываете два метода навигации в одном UI thread исполнении.Это может вызвать некоторые проблемы с этим.Попробуйте поместить второй Navigate внутри Dispatcher, чтобы отложить его выполнение или подписаться на событие Navigated и вызвать из него второе Navigate

Browser.Navigate(new Uri(blank, UriKind.Relative));
Dispatcher.BeginInvoke(() =>
{
    Browser.Navigate(new Uri(s, UriKind.Relative)); 
});

Или:

Uri blank_ = new Uri(blank, UriKind.Relative)
Browser.Navigated += (s, e) =>
{
    if (e.Uri == blank_)
    {
        Browser.Navigate(new Uri(s, UriKind.Relative)); 
    }
};
Browser.Navigate(blank_);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...