Nous avons un navigateur Web dans notre application Winforms pour bien afficher l'historique d'un élément sélectionné rendu par xslt.C# Accédez aux ancres dans le contrôle WebBrowser
Le xslt écrit < des balises > dans le fichier html en sortie pour permettre au contrôle webBrowser de naviguer vers l'entrée d'historique sélectionnée. Comme nous ne naviguons pas sur le html au sens strict du Web, plutôt que de définir le HTML par le DocumentText, je ne peux pas naviguer vers les ancres désirées avec un #AnchorName, car l'Url de webBrowser est nul (edit: en fait à la fin, il s'agit de: blank).
Comment est-ce que je peux naviguer dynamiquement aux balises d'ancrage dans le html du contrôle de navigateur Web dans ce cas?
EDIT:
Merci sdolphion pour la pointe, c'est le code final je
void _history_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
_completed = true;
if (!string.IsNullOrEmpty(_requestedAnchor))
{
JumpToRequestedAnchor();
return;
}
}
private void JumpToRequestedAnchor()
{
HtmlElementCollection elements = _history.Document.GetElementsByTagName("A");
foreach (HtmlElement element in elements)
{
if (element.GetAttribute("Name") == _requestedAnchor)
{
element.ScrollIntoView(true);
return;
}
}
}
Juste trouvé une référence à cette ligne et je teste maintenant. Marquer comme réponse quand je le confirme. – johnc
Bien que j'utilise Document.GetElementByName plutôt que la boucle – johnc
Merci d'avoir posté votre mise à jour, j'ai changé la mienne pour qu'elle corresponde plus à la vôtre. – sdolphin