Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 611|回复: 0

IE6-IE9兼容性问题列表及解决办法_补充之四:HTC (Html Components) 功能逐渐被IE抛弃

[复制链接]
  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 802 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726006
    发表于 2021-6-21 13:20:21 | 显示全部楼层 |阅读模式

    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()导致页面提交问题,待将来再行补充。

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-15 01:43 , Processed in 1.118302 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表