Как получить доступ к элементу <HEAD>документа HTML с помощью элемента управления веб-браузера в WinForms? - PullRequest
2 голосов
/ 07 декабря 2011

Я использую WinForms C # 3.5 WebBrowser

Я пытаюсь получить доступ к элементу head в следующем HTML-документе:

this.webBrowserTest.DocumentText = @”<html>
    <head>
        <title>Test JavaScript WinForms</title> 
        <meta name="description" content="Test WinForms" />        
    </head>
    <body></body>
</html>”

HtmlElementCollection headCollection = webBrowserTest.Document.GetElementsByTagName("HEAD");
HtmlElement head = headCollection[0]

headCollection[0] передается какnull

Кто-нибудь может понять, что не так?

спасибо

Ответы [ 3 ]

1 голос
/ 19 марта 2015

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

// Add a handler for load complete.
webBrowserTest.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentLoadCompleted);

// Wait until load completes.
while (webBrowserTest.ReadyState != WebBrowserReadyState.Complete)
{
    System.Windows.Forms.Application.DoEvents();
}

// On load complete, do stuff.
private void DocumentLoadCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    WebBrowser browser = sender as WebBrowser;
    HtmlElement head = browser.Document.GetElementsByTagName("head")[0];
    // do stuff...
}
0 голосов
/ 07 декабря 2011

Вы можете использовать webBrowserTest.Document.All ["headid"], если вы предоставите атрибут id = "headid" для элемента head.

0 голосов
/ 07 декабря 2011

Вы пробовали

webBrowserTest.Document.All["HEAD"]; // or head
...