博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IE6-IE9兼容性问题列表及解决办法_补充之四:HTC (Html Components) 功能逐渐被IE抛弃...
阅读量:6329 次
发布时间:2019-06-22

本文共 1756 字,大约阅读时间需要 5 分钟。

Html Components (是HTC组件,不是智能手机,扩展名为.htc的文件就是它了)是微软从 IE5 开始引入的概念,但自从IE全面转向标准并逐步支持Html5之后,HTC的功能就逐步被抛弃了,而到了IE10,就彻底抛弃不再支持HTC(Html Components)了,所以如果有这方面的代码都要做升级重写的准备。

HTC组件的简介如下:HTML 组件是封装的对象,也像 ActiveX 控件一样是“自包含”的,可以在开发完后发布给任何人。HTC 文件并不仅仅是将一个 HTML 文件的扩展名换成 .htc,它含有js或vbs脚本和 HTC 定制元素的集合。 在 HTML 文件中,HTC 拥有和页面中其他的 DHTML 元素一样的访问方式。这就意味着所有 HTC 元素都可以通过 id 属性在脚本中调用,也就是说 HTC 元素的属性、方法都可以通过脚本来进行灵活的运用。

您可以通过下面几种方式来执行 DHTML 行为:
定义属性和方法。在 HTC 中分别使用 PUBLIC:PROPERTY 和 PUBLIC:METHOD 元素来定义 HTC 的属性和方法。
定义事件:通过 EVENT 元素定义,使用元素的 fire () 方法在它们所在的页面里 引发这些事件。
事件的环境可以通过 createEventObject () 方法设置。 在它们所在的页面里访问 DHTML 对象模型。HTC 中的 object 元素返回它所附属的元素, 通过这个对象,HTC 能访问他所在的文档及其对象模型 (属性、方法和事件)。
当使用 ATTACH 元素时,浏览器向 HTC 通报标准 DHTML 事件和两个 HTC 专有 事件,oncontentready 和 ondocumentready。

下面几点是IE9下HTC的变化之处:

1.在IE9下,原来不用声明就可以在脚本(js或vbs)用的属性变量,在IE9下必须要先声明才可以使用了。
<PROPERTY NAME="YourVar"/>

2.在IE9下,HTC不支持最新的addEventListener,只能使用过时的attachEvent方法。

在”<<IE6-IE9兼容性问题列表及解决办法>>第三章:Javascript and DOM, 第三节:IE8-IE9更新, 11.部分DOM 事件已过时”中提到提倡用addEventListener替换attachEvent,但是在Htc这种特殊类型的程序里,此点不适用,也就是说,Htc不支持addEventListener, 因此,我们仍需要用attachEvent。

正确的:attachEvent("onpropertychange", DoChange);

错误的:addEventListener("propertychange", DoChange);

3 在IE9下,HTC中的颜色需要使用css hack技巧才能奏效,例如:为颜色增加\9,来兼容IE9。

如下所示:
    var sForeColor = parentElement.style.color + "\9";
    var sBackColor = parentElement.style.background + "\9";

4.在IE9下,作为PROPERTY属性的value作为保留字,不再支持自定义处理PUT方法,需要另起名字了。

正确的:<PUBLIC:PROPERTY NAME="value" PUT="putValue" GET="getValue"/>

错误的:<PUBLIC:PROPERTY NAME="Value" PUT="putValue" GET="getValue"/>

使用起来要这样:window.document.getElementById("YourName").Value = "ZhangSan";

 

此外,Input控件readonly标记不起作用问题,及一些fire()和FireFocus()导致页面提交问题,待将来再行补充。

 

转载于:https://www.cnblogs.com/liuzhendong/archive/2012/09/23/2699357.html

你可能感兴趣的文章
将美丽无限放大,你会发现世界真的很美好!!!
查看>>
基于ZooKeeper的Dubbo注册中心
查看>>
知乎上关于c和c++的一场讨论_看看高手们的想法
查看>>
漫说模板方法模式---学生时代的烦恼
查看>>
正则表达式-贪婪与懒惰
查看>>
WCF分布式开发必备知识(2):.Net Remoting
查看>>
【多线程】学习11
查看>>
如何在Datatable中取得每列的数据列宽度
查看>>
XML学习笔记
查看>>
任务调度开源框架Quartz动态加入、改动和删除定时任务
查看>>
[再寄小读者之数学篇](2014-11-20 计算二重积分)
查看>>
locate 命令(转)
查看>>
WebGIS中兴趣点简单查询、基于Lucene分词查询的设计和实现
查看>>
【转载】VS配置路径和宏
查看>>
jenkins 安装 SVN Publisher 后向 svn 提交代码报错: E170001: Authentication required for...
查看>>
伪异步IO理解
查看>>
成为JAVA GC专家系列
查看>>
我的编程之路(十八) 团队开发
查看>>
Redis的消息通知
查看>>
Word2010插入页码分节符
查看>>