更改WebBrowser控件组件的内容会消除图像

时间:2012-01-18 00:36:15

标签: c# image browser html-agility-pack

我有一些代码,如下所示,将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();

0 个答案:

没有答案