htcHTC的语法格式
作者:闪吧 类型:原创 来源:闪吧
与 HTML 文件一样,HTC文件也有一个固定的格式,虽然很多格式可以省略,但初学时还是希望读者都能严格按格式书写代码。
1.根元素。
写在 HTC 文件的首行和末行位置,大概相当于 HTML 文件中的 标签:
2.各子元素说明。
(1)PUBLIC:DEFAULTS元素
语法(属性如表2.5.2.1所示) :
表2.5.2.1 PUBLIC:DEFAULTS元素属性
属性说明
canHaveHTML获...
HTC的语法格式
作者:闪吧 类型:原创 来源:闪吧
与 HTML 文件一样,HTC文件也有一个固定的格式,虽然很多格式可以省略,但初学时还是希望读者都能严格按格式书写代码。
1.根元素
。
写在 HTC 文件的首行和末行位置,大概相当于 HTML 文件中的 标签:
2.各子元素说明。
(1)PUBLIC:DEFAULTS元素
语法(属性如表2.5.2.1所示) :
表2.5.2.1 PUBLIC:DEFAULTS元素属性
属性说明
canHaveHTML获取表明对象是否可以包含子对象的值。 可选项,值:true 或 false。
contentEditable设置或获取表明用户是否可编辑对象内容的字符串。可选项,值:true 或 false。
style设置或获取HTC文件定义的标签样式。可选项。
tabStop设置或获取由HTC文件定义的标签是否可以通过 tab 键激活。 可选项,值:true 或 false。
viewInheritStyle设置或获取 viewlink 是否继承HTML主文件的样式。 可选项,值:true 或 false。
viewLinkContent设置或获取HTC文档中的标记是否用作 viewlink。 可选项,值:true 或 false。
viewMasterTab设置或获取 viewlink 的主要元素是否包括在主文档的 tab 索引中。 可选项,值:true 或 false。
(2)PUBLIC:ATTACH
语法(属性如表2.5.2.2所示):
表2.5.2.2 PUBLIC:ATTACH元素属性
属性说明
EVENT必选项。指定 DHTML 或任意 HTC 参考中列出的事件名
FOR可选项。指定 document、element 或 window 中的一个来标识源事件
ID可选项。设置组件中的 PUBLIC:ATTACH 的唯一标识,类似 DHTML 中的 ID 属性
ONEVENT必选项。指定一行脚本或一个处理事件的函数
HANDLER必选项。指定处理事件的函数名
注意:HANDLER 和 ONEVENT 只能用一个,用 HANDLER 的话只需指定函数名
(3)PUBLIC:EVENT
语法(属性和方法分别如表2.5.2.3、2.5.2.4所示):
表2.5.2.3 PUBLIC:EVENT元素属性
属性说明
ID可选项。设置组件中的 PUBLIC:EVENT 的唯一标识,类似 DHTML 中的 ID 属性
NAME必选项。指定包含文档中显式事件的名称
表2.5.2.4 PUBLIC:EVENT元素方法
方法说明
eventID.fire(oEvent)触发包含文档的事件,oEvent 为指定包含关联信息事件对象的对象
(4)PUBLIC:METHOD
语法(属性如表2.5.2.5所示):
表2.5.2.5 PUBLIC:METHOD元素属性
属性说明
ID可选项。设置组件中的 PUBLIC:EVENT 的唯一标识,类似 DHTML 中的 ID 属性
INTERNALNAME可选项。指定名称,名称由组件中提及的方法命名。如果不指定值,NAME属性为默认。
NAME必选项。指定名称,名称由包含文档中提及的方法命名。默认情况下,指定的NAME也可用于组件中所指的方法,除非指定了INTERNALNAME属性。
(5)PUBLIC:PROPERTY
语法(属性和方法分别如表2.5.2.6、表2.5.2.7所示):
表2.5.2.6 PUBLIC:PROPERTY 元素属性
属性说明
GET可选项。指定函数,每当获取属性值时,函数会有响应。A PUBLIC:PROPERTY元素用来指定GET属性为只读,此GET属性无须指定PUT属性。
ID可选项。唯一识别组件内的PUBLIC:PROPERTY元素。类似于DHTML中的ID属性。
INTERNALNAME可选项。指定名称,由组件中提及的属性命名。内部的名称必须公开,才能在组件内任何地方被引用,否则,会出现脚本错误,显示名称不可定义。如果不定义内部名称,NAME属性为默认。
NAME必选项。指定包含文档中显式属性的名称。默认情况下,指定的NAME也可用于组件中所指的方法,除非指定了INTERNALNAME属性。
PERSIST可选项。指定是否要持续部分页面的属性。
PUT可选项。指定函数,当设置属性值时,函数会有响应。PUBLIC:PROPERTY元素用来指定GET和PUT属性为可读写。当指定PUT功能时,不能指定GET函数,使属性为只写,通常不期望出现这种情况。
VALUE可选项。指定属性的默认值。
表2.5.2.7 PUBLIC:PROPERTY 元素方法
方法说明
propertyID.fireChange()包含文档,通过触发元素中onpropertychange事件,而改变文档的属性值。如果在属性中不指定PUT属性,在包含文档中设置属性时,则自动触发onpropertychange。
3.在页面中使用 HTC。
因为 HTC 是以行为形式出现的,所有问题主要是设置元素的 style 对象的 behavior 属性。代码示例(先假设同目录下存在名为 demo.htc 的HTC文件):
或
HTC实例
作者:闪吧 类型:原创 来源:闪吧
1.单元格背景色切换
这里以简单的背景颜色变换效果为例,说明如何将一般的效果用HTC写出来。
(1)最简单也是最麻烦的做法,在每个单元格里加上 onmouseover 和 onmouseout 事件来执行一段代码:
(2)可以看到,这样做出来的代码量非常"可观",将它修改并封装成 HTC:
tableColor.htc页的代码 :
在网页中调用HTC:
2.可拖动的层
(1)常规的做法是在层上加上 onmousedown、onmousemove 和 onmouseup 来调用相应函数:
Layer 1
Layer 2
Layer 3
(2)写成HTC。
drag.htc:
然后在网页中调用HTC:
Layer 1
Layer 2
Layer 3
3.HTC 打造的 Flash 播放器
(1)主文件 player.htm:
(2)HTC 文件 player.htc:
提示:
l 关于表格的变色问题详细解释,请参考第一部分第二章问题12。
l 关于层的拖动问题详细解释,请参考第一部分第三章问题9和第三部分问题4。
l 关于Flash播放器的详细解释,请参考第五部分第五章的问题一。
特别提示
HTC封装后应用的代码的运行效果和原代码运行效果完全一样,具体请按提示中的说明参考相关例子或自行测试代码。
特别说明
通过对三个不同例子的HTC转化封装,再对照第二节中的属性、方法和事件的说明,读者朋友们应该能熟练掌握HTC的封装和应用了。
如何让网页适应不同分辨率
作者:闪吧 类型:原创 来源:闪吧
如何让网页适应不同分辨率
解决思路:
在不同分辨率下看到的网页版面格式有很大差别,甚至有可能错位。导致这种差别的原因,主要是因为网页中用了绝对定位的层,并且页面内容设置为居中,这样在分辨率改变时就会导致错位。因此我们可以通过判断用户的分辨率,然后让页面或排版做出相应变化。
方法一:做为不同的分辨率做不同的页,然后做个引导页,获取到客户端屏幕的分辨率后转向到相应页
具体步骤:
1. 先捕获用户的分辨率。
水平分辨率:screen.width
垂直分辨率:screen.height
2.再用页面跳转的方法转到相应页。
location.replace(screen.width+".htm")
或者:
location.replace(screen.height+".htm")
3.完整代码。
技巧:screen.width 也可以改成 screen.availWidth。
提示:
l language="JavaScript" 指定脚本所用语言为 JavaScript,大部分浏览器的默认客户端脚本语言就是 JavaScript,所以也可以省略不写。
l 两个标识的作用是通知不支持 JavaScript 浏览器忽略两标识间的所有 JavaScript 代码,一般情况下可以省略不写。
l JavaScript 语句与 C 语言一样用分号”;”结束,但也可以省略不写,每一新行表示开始一条新语句。
l screen.width+".htm" 在进行字符串连接后得到诸如 800.htm,1024.htm 之类的文件名。
l 可以在把完整代码存成单独一页作为引导页。
试一试:读者可以试着用assign方法实现页面跳转。
方法二:根据文档显示区域宽度重新调整层的定位。
具体步骤:
1. 获取文档显示区域的宽度。
document.body.offsetWidth
2.判断对象是否为层。
function isLayer(obj){
with(obj.currentStyle)
return (position=="absolute"&&left!="")
}
3.完整代码。
Layer1
Layer2
注意:
l 必须确保所有层的标签为 DIV。
l 程序中的 demo 和 demo1 两个层只是测试用的,在实际就用时可以删掉。
技巧:如果所有层都是直接在标签内的定义的,可以把 currentStyle 和runtimeStyle 改成 style。
提示:
l JavaScript 的单行注释是以一对正斜杠”//”开始,多行注释以一个正斜杠加一个星号的组合(/*)开始,并以其逆向顺序 (*/)结束。
l window.onload 表示在页面加载完成后触发。
l onresize="init()" 表示在窗口大小改变时触发名为 init 的函数。
分析:屏幕分辨率先是影响到文档显示区域宽度(document.body.offsetWIdth)大小,然后文档显示区域宽度大小进一步影响到层的X轴定位和页面内容居中部分的相对位置,所以只要根据文档显示区域宽度大小来重新调整层的X轴坐标就行了。
特别提示
Javascript脚本的代码上是要求放在代码的 与 间,但放到其它标签窗口内也可以正常运行,方法二中代码运行后效果如图 3.1 和 3.2 所示:
INCLUDEPICTURE "http://www2.flash8.net/Uploadteach/2005/06/27/200562720263725.jpg" \* MERGEFORMATINET
图 3.1 窗口最大化时层的
图 3.2 窗口缩小后的层的位置
特别说明
方法一中用到了 location 对象的 replace 和 assign 方法来加载目标文档。
1. location对象的replace方法是将指定的文档替换当前文档。
2. location对象的assign方法是装入新的HTML文档。
方法二中用了 currentStyle、runtimeStyle 和 style 三个对象来捕获目标对象的样式设置。
1. currentStyle对象代表在全局样式表、内嵌样式和 HTML 标签属性中指定的对象格式和样式。
2. runtimeStyle对象代表居于全局样式表、内嵌样式和 HTML 标签属性指定的格式和样式之上的对象的格式和样式。
3. style对象代表给定元素所有可能的内嵌样式的当前设置
本文档为【htc】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。