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("TABLE"); doc.Body.AppendChild(tableElem); HtmlElement tableHeader = doc.CreateElement("THEAD"); tableElem.AppendChild(tableHeader); tableRow = doc.CreateElement("TR"); tableHeader.AppendChild(tableRow); foreach (DataColumn col in customersTable.Columns) { headerElem = doc.CreateElement("TH"); headerElem.InnerText = col.ColumnName; tableRow.AppendChild(headerElem); } // Create table rows. HtmlElement tableBody = doc.CreateElement("TBODY"); tableElem.AppendChild(tableBody); foreach (DataRow dr in customersTable.Rows) { tableRow = doc.CreateElement("TR"); tableBody.AppendChild(tableRow); foreach (DataColumn col in customersTable.Columns) { Object dbCell = dr[col]; HtmlElement tableCell = doc.CreateElement("TD"); if (!(dbCell is DBNull)) { tableCell.InnerText = dbCell.ToString(); } tableRow.AppendChild(tableCell); } } } }
例子:
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.DocumentText =
"<html><body>Please enter your name:<br/>" +
"<input type='text' name='userName'/><br/>" +
"<a href='http://www.microsoft.com'>continue</a>" +
"</body></html>";
webBrowser1.Navigating +=
new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
}
private void webBrowser1_Navigating(object sender,
WebBrowserNavigatingEventArgs e)
{
System.Windows.Forms.HtmlDocument 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 新建一个指定 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 页。 运算符属性
名称 说明 ActiveElement 提供当前具有用户输入焦点的 HtmlElement。 ActiveLinkColor 获取或设置超链接被用户单击后的 Color。 All 获取 HtmlElementCollection 的实例,该实例存储文档的所有 HtmlElement 对象。 BackColor 获取或设置 HTML 文档的背景色。 Body 获取 BODY 标记的 HtmlElement。 Cookie 获取或设置与此文档关联的 HTTP Cookie。 DefaultEncoding 获取默认情况下为当前文档使用的编码。 Domain 获取或设置字符串,描述用于安全目的的此文档的域。 DomDocument 获取此 HtmlDocument 的非托管接口指针。 Encoding 获取或设置此文档的字符编码。 Focused 获取一个值,该值指示文档是否具有用户输入焦点。 ForeColor 获取或设置文档的文本颜色。 Forms 获取文档中所有 <FORM> 元素的集合。 Images 获取文档中所有图像标记的集合。 LinkColor 获取或设置超链接的颜色。 Links 获取此 HTML 文档中所有超链接的列表。 RightToLeft 获取或设置当前文档中文本的方向。 Title 获取或设置当前 HTML 文档中 <TITLE> 标记的文本值。 Url 获取描述此文档位置的 URL。 VisitedLinkColor 获取或设置用户已经访问的链接(指向 HTML 页)的颜色。 Window 获取与此文档关联的 HtmlWindow。