У меня есть некоторый код, показанный ниже, который перемещает компонент WebBrowser к Google. Затем он пытается изменить некоторые теги ссылки и снова отобразить страницу, все работает нормально, но когда вызывается оператор обновления, исчезает логотип Google в верхнем левом углу, я пробовал это с помощью update (), а не обновления (), а также с использованием методов и классов, связанных с классом Document, используемым элементом управления WebBrowser. По сути, я ищу понимание того, как я могу изменить источник страницы, который использует WebBrowser, не теряя логотип Google, желаемый эффект будет во многом похож на поддержку Opera редактирования страниц без необходимости их перезагрузки.
string url = @"http://www.google.com/search?q=myquery";
browser.Navigate( url );
Console.WriteLine( "Waiting for page to load" );
while ( !loaded ) // Waits for document completed event
{
Application.DoEvents();
Console.Write( "." );
Thread.Sleep( 50 );
}
Console.WriteLine( "Page Loaded");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml( browser.DocumentText );
HtmlAttribute testAttrib = doc.CreateAttribute( "style" );
testAttrib.Value = "background-color: #222222";
HtmlNodeCollection linkNodes = doc.DocumentNode.SelectNodes( "//a[@href]" );
foreach ( HtmlNode linkNode in linkNodes )
{
if ( linkNode.Attributes[ "href" ].Value.Contains( "sourceforge" ) )
{
linkNode.Attributes.Add( testAttrib );
break;
}
}
browser.Url = new Uri( url );
browser.DocumentText = doc.DocumentNode.OuterHtml;
browser.Refresh();