top-silverlight | Just another WordPress weblog

五/09

18

13.1.1 浏览器互操作支持(图)

13.2 访问文档对象模型 

  13.2.1 文档对象模型简介

  Silverlight中使用HtmlDocument类来表示浏览器中的HTML文档对象模型,使用HtmlElement表示文档对象模型中的HTML元素。HtmlDocument的主要属性如下所示:

  C#public sealed class HtmlDocument : Htmltpublic HtmlElementBodyget; public string Cookies get; set; publicHtmlElementDocumentElement get; public Uri DocumentUri get; publicboolIsReady get; public IDictionary<string, string>QueryStringget;

  各个属性的解释如下所示。

  Body:获取对HTML文档的BODY元素的引用。

  Cookies:获取或设置浏览器的Cookie字符串。

  DocumentElement:获取对浏览器的DOCUMENT元素的引用。

  DocumentUri:获取统一资源标识符URI对象,该对象表示宿主Silverlight插件的 HTML文档。

  IsReady:指示浏览器是否完全加载了HTML页。

  QueryString:表示当前页面URL上的查询字符串参数。

  HtmlElement的主要属性如下所示:

  C#public sealed class HtmlElement : HtmltpublicttCollectionChildren get; public string CssClass get; set; publicstring Idget; set; public HtmlElement Parent get; public stringTagNameget;

  各个属性的解释如下所示。

  Children:获取只读的HTML元素集合,这些元素是当前HTML元素的直接子元素。

  CssClass:获取或设置当前HTML元素CSS类字符串。

  Id:获取当前HTML元素标识符。

  Parent:获取对当前HTML元素的父级引用。

  TagName:获取当前HTML元素的HTML标记名称。

  下面看一个示例,使用以上对象来获取HTML页面文档对象模型中的HTML元素树,通过HtmlPage静态类的Document属性可以获得当前页面文档对象模型的引用,然后通过递归的方式找到所有的元素,如下面的示例代码所示:

  StringBuilder reuslt = newStringBuilder();voidGetElement(HtmlElement element, int indent)if(element.TagName “!”)return;

  reuslt.Append(new String(” “, indent * 4));reuslt.Append(“<”+element.TagName);if (element.Id != “”)reuslt.Append(” id=\”"+element.Id + “\”");reuslt.Append(“>\n”);

  foreach (HtmlElement childElementinelement.Children)GetElement(childElement, indent + 1);

  this.tblTree.Text = reuslt.ToString();

  运行效果如图13-2所示。

 

(点击查看大图)图13-2

No tags

No comments yet.

Leave a Reply

<<

>>

Theme Design by devolux.nh2.me