我們在Winforms應用程序中有一個Web瀏覽器,可以很好地顯示xslt呈現的所選項目的歷史記錄。C#在WebBrowser控件中導航到錨點
xslt在輸出的html中寫出<a>標記,以允許webBrowser控件導航到選定的歷史記錄條目。
因爲我們不是在嚴格的web意義上導航到html,而是通過DocumentText設置html,所以我無法使用#AnchorName'導航'到所需的錨點,因爲webBrowser的Url爲null(編輯:實際上完成它是關於:空白)。
在這種情況下,如何動態導航到Web瀏覽器控件的html中的錨定標記?
編輯:
感謝sdolphion的小費,這是我用
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;
}
}
}
的頂部對準它的只是發現這個網上的參考,現在正在測試它。當我確認時將會標記爲答案。 – johnc 2009-09-18 01:44:12
儘管我使用Document.GetElementByName而不是循環 – johnc 2009-09-18 01:45:22
感謝您發佈我的更新,我將其更改爲與您更接近地匹配。 – sdolphin 2009-09-18 19:07:49