我有一些代码,如下所示,将WebBrowser组件导航到谷歌。然后它尝试修改一些链接标签并重新显示页面,一切正常但是当调用刷新语句时,左上角的google徽标消失了,我尝试使用update()而不是刷新(),以及使用与WebBrowser控件使用的Document类相关的方法和类。基本上,我正在寻找有关如何修改WebBrowser正在使用的页面源而不会丢失谷歌徽标的洞察力,所需的效果将非常像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();