Silverlight与浏览器通信技术总结1:Silverlight访问HTML DOM

Silverlight是浏览器的一个插件,运行在浏览器的Sand Box中。Silverlight与浏览器之间的访问,有时会给编程带来很大便利。本系列的目的是总结Silverlight与浏览器互访的技术及应用,作为实际开发时的参考。首先来看Silverlight如何访问HTML DOM。


HTML DOM(Document Object Model)定义了标准的方法来操作HTML文档,它是树形结构的。在Silverlight中你可以通过HtmlPage.Document对象直接与HTML DOM进行交互。HtmlPage类允许访问和操作浏览器的HTML DOM,通过这个类你还可以访问浏览器的其他特性,例如浏览器信息等。这个类在System.Windows.Browser命名空间。HtmlPage.Document返回对象类型HtmlDocument,通过这个对象可以访问HTML DOM.

private void SendMessage(string message) 
{ 
      HtmlDocument doc = HtmlPage.Document; 
      HtmlElement element = doc.GetElementById("message"); 
      if (element != null) 
      { 
            element.SetProperty("innerHTML", message); 
      } 
}

HtmlDocument类提供了各种方法和属性来管理HTML文档: 

Body - 访问HTML文档body,可以改变它的属性或者child elements等。
Cookies - 获取或设置当前站点的cookie信息。
QueryString - 获得当前站点的query string collection。
GetElementById(...) - 通过id来获得HTML element。
GetElementsByTagName(...) - 通过tag名字来获得一组HTML element。 

 

另外一个重要的类是HtmlElement:

Children - 获得当前HTML element的所有child elements。
CssClass - 获取或设置HTML element的class属性,通过它可以很容易的操作HTML element的style。
SetAttribute(...) - 改变当前HTML element的Attribute值。
SetProperty(...) - 改变当前HTML element的Property值。
SetStyleAttribute(...) - 改变HTML element的style attribute值。

 

是不是对HTML的Attribute和Property的区别有点困惑?每一个HTML element都有一个Property,在DOM树中可以看到。这些Property可以通过JavaScript或其他脚本语言来访问。而Attribute用于HTML声明中,例如:<table width="100%">。每一个Attribute都有一个Property相对应,反之则不一定,因此Attribute相当于Property子集。

 

通过上面介绍可以看到,Silverlight访问HTML DOM十分简单,源代码请在这里下载

在线演示:http://rpg.yingyuantown.com/AccessHtmlDomProjectTestPage.html

 

在本系列后面将给出一些具体应用实例,敬请期待,谢谢。

 

update:

如果你不希望silverlight访问HTML DOM,可以在silverlight object中设置参数:

<param name="enablehtmlaccess" value="false"/>

 

 

转载于:https://www.cnblogs.com/erichan/archive/2010/05/18/1737862.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值