C# 穿越 HtmlDocument 垄断HTML节点时,会发生不时地刷新的情形,在对html文档垄断后加以推断即可处理这种问题。
Public Sub setMainUlr(ByVal WebBrowser1 As WebBrowser)
Dim pElem As HtmlElement = Nothing
'及时消息版面
pElem = WebBrowser1.Document.All("myFrame")
If Not pElem Is Nothing Then
If pElem.GetAttribute("src") <> myFrameUrl Then
Dim ax As AccessXml = New AccessXml()
pElem.SetAttribute("src", myFrameUrl)
End If
End If
'揭示图片版面
pElem = WebBrowser1.Document.All("slice")
If Not pElem Is Nothing Then
If pElem.GetAttribute("src") <> pictureUrl Then
Dim ax As AccessXml = New AccessXml()
pElem.SetAttribute("src", pictureUrl)
End If
End If
End Sub
通用措施:
private void DisplayCustomersTable(){ DataSet customersSet = new DataSet(); DataTable customersTable = null; SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Customers", "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"); sda.Fill(customersTable); customersTable = customersSet.Tables[0]; if (webBrowser1.Document != null) { HtmlElement tableRow = null; HtmlElement headerElem = null; HtmlDocument doc = webBrowser1.Document; HtmlElement tableElem = doc.createElement_x("TABLE"); doc.Body.AppendChild(tableElem); HtmlElement tableHeader = doc.createElement_x("THEAD"); tableElem.AppendChild(tableHeader); tableRow = doc.createElement_x("TR"); tableHeader.AppendChild(tableRow); foreach (DataColumn col in customersTable.Columns) { headerElem = doc.createElement_x("TH"); headerElem.InnerText = col.ColumnName; tableRow.AppendChild(headerElem); } // Create table rows. HtmlElement tableBody = doc.createElement_x("TBODY"); tableElem.AppendChild(tableBody); foreach (DataRow dr in customersTable.Rows) { tableRow = doc.createElement_x("TR"); tableBody.AppendChild(tableRow); foreach (DataColumn col in customersTable.Columns) { Object dbCell = dr[col]; HtmlElement tableCell = doc.createElement_x("TD"); if (!(dbCell is DBNull)) { tableCell.InnerText = dbCell.ToString(); } tableRow.AppendChild(tableCell); } } }}
例子:
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.DocumentText =
"
Please enter your name:" +
"
" +
"continue" +
"";
webBrowser1.Navigating +=
new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
}
private void webBrowser1_Navigating(object sender,
WebBrowserNavigatingEventArgs e)
{
System.Windows.Forms.Document document =
this.webBrowser1.Document;
if (document != null && document.All["userName"] != null &&
String.IsNullOrEmpty(
document.All["userName"].GetAttribute("value")))
{
e.Cancel = true;
System.Windows.Forms.MessageBox.Show(
"You must enter your name before you can navigate to " +
e.Url.ToString());
}
}
供给对 WebBrowser 控件承载的 HTML 文档的顶级编程拜会。
HtmlDocument 种类公布以下成员。 措施
名目
解释
AttachEventHandler为已命名的 HTML DOM 事件增加事件处理过程。createElement_x修建一个指定 HTML 符号种类的 HtmlElement。DetachEventHandler从 HTML DOM 上的命名事件中移除事件处理过程。Equals确定指定的 Object 是否等于目前的 Object。 (重写 Object..::.Equals(Object)。)ExecCommand对文档厉行指定的号召。Finalize批准 Object 在“草芥回收”回收 Object 之前试探释放资源并厉行其他清理垄断。 (继承自 Object。)Focus在目前文档上设置用户输入焦点。GetElementById将元素的 ID 属性用作搜查键来检索个体 HtmlElement。GetElementFromPoint检索位于指定工作区坐标位置的 HTML 元素。GetElementsByTagName检索具有指定 HTML 符号的元素聚集。GetHashCode用作特定种类的哈希函数。 (重写 Object..::.GetHashCode()()()。)GetType获得体前实例的 Type。 (继承自 Object。)InvokeScript已重载。 厉行在 HTML 版面中定义的动态脚本函数。MemberwiseClone创立目前 Object 的浅表副本。 (继承自 Object。)OpenNew获得一个新的 HtmlDocument 以便与 Write 措施同时利用。ToString归来表示目前 Object 的 String。 (继承自 Object。)Write编写一个新的 HTML 页。页首 计算符
名目
解释
Equality Inequality页首 属性
名目
解释
ActiveElement供给目前具有用户输入焦点的 HtmlElement。ActiveLinkColor获得或设置超链接被用户单击后的 Color。All获得 HtmlElementCollection 的实例,该实例存储文档的所有 HtmlElement 对象。BackColor获得或设置 HTML 文档的背景色。Body获得 BODY 符号的 HtmlElement。Cookie获得或设置与此文档关系的 HTTP Cookie。DefaultEncoding获得默认情形下为目前文档利用的编码。Domain获得或设置字符串,描写用于平安目标的此文档的域。DomDocument获得此 HtmlDocument 的非托管接口指针。Encoding获得或设置此文档的字符编码。Focused获得一个值,该值指示文档是否具有用户输入焦点。ForeColor获得或设置文档的文性质泽。Forms获得文档中所有
元素的聚集。Images获得文档中所有图像符号的聚集。LinkColor获得或设置超链接的颜色。Links获得此 HTML 文档中所有超链接的列表。RightToLeft获得或设置目前文档中文本的方向。Title获得或设置目前 HTML 文档中 符号的文本值。Url获得描写此文档位置的 URL。VisitedLinkColor获得或设置用户曾经拜会的链接(指向 HTML 页)的颜色。Window获得与此文档关系的 HtmlWindow。你能够把这些讹谬增加到你的代码审查的察看列表(checklist)中,