51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1614|回复: 0
打印 上一主题 下一主题

[原创] 如何触发自定义的htc事件

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-8-18 15:46:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<!—switch.htc定义 -->
<PUBLIC:COMPONENT TAGNAME="Switch">
    <!--属性定义-->
    <PUBLIC:PROPERTY NAME="turnOnText" PUT="setTurnOnText" VALUE="Turn on" />
    <PUBLIC:PROPERTY NAME="turnOffText" PUT="setTurnOffText" VALUE="Turn off" />
    <PUBLIC:PROPERTY NAME="status" GET="getStatus" PUT="setStatus" VALUE="on" />
    <!--定义事件-->
    <PUBLIC:EVENT NAME="onStatusChanged" ID="changedEvent" />
    <!--定义方法-->
    <PUBLIC:METHOD NAME="reverseStatus" />
    <!--关联客户端事件-->
    <PUBLIC:ATTACH EVENT="oncontentready" />
    <PUBLIC:ATTACH EVENT="onclick" />
</PUBLIC:COMPONENT>
<!-- htc脚本 -->
<script language="javascript">
    var sTurnOnText;    //关闭状态所显示的文本
    var sTurnOffText;   //开启状态所显示的文本
    var sStatus;    //开关状态
    var innerHTML   //使用开关时包含在开关中的HTML
    //设置开关关闭状态所显示的文本
    function setTurnOnText(value)
    {
        sTurnOnText = value;
    }
    //设置开关开启状态所显示的文本
    function setTurnOffText(value)
    {
        sTurnOffText = value;
    }
    //设置开关状态
    function setStatus(value)
    {
        sStatus = value;
    }
     //读取开关状态
    function getStatus()
    {
        return sStatus;
    }
    //反向开关的状态
    function reverseStatus()
    {
    sStatus = (sStatus == "on") ? "off" : "on";
    }
    //获取htc控制界面html文本
    function getTitle()
    {
        var text = (sStatus == "on") ? sTurnOffText : sTurnOnText;
    text = "<div id='innerDiv'>" + text + "</div>";
    return text;
    }
    //htc初始化代码
    function initialize()
    {
    //back up innerHTML
    innerHTML = element.innerHTML;
    element.innerHTML = (sStatus == "on") ? getTitle() + innerHTML : getTitle();
    }
    //响应用户鼠标事件的方法
    function expandCollapse()
    {
    reverseStatus();
    //   
var oEvent = createEventObject();
    changedEvent.fire(oEvent);
    var srcElem = element.document.parentWindow.event.srcElement;
    if(srcElem.id == "innerDiv")
    {
        element.innerHTML = (sStatus == "on") ? getTitle() + innerHTML : getTitle();
    }
    }
</script>

<!--learnhtc.html-->
<html xmlns:frogone><!--定义一个新的命名空间-->
<head>
    <!--告诉浏览器命名空间是由哪个HTC实现的-->
    <?IMPORT namespace="frogone" implementation="switch.htc">
</head>
<body>
   <!--设置开关的各个属性及内部包含的内容-->
   <frogone:Switch id="mySwitch"
                    TurnOffText="off"
                    Turn
                    status="off"
                    >
        <div id="dBody">文本内容...... </div>
    </frogone:Switch>

<button id="b"  value = "firechange">
</body>
<script language="javascript">
    //相应开关事件
    function confirmChange()
    {
        if(!confirm("是否改变开关状态?"))
            mySwitch.reverseStatus();
    }
function firechange(){
  //alert(mySwitch.status)
  mySwitch.fireEvent("onclick");//可以触发
  //mySwitch.fireEvent("onStatusChanged");//无法触发????????
}
</script>
</html>

[ 本帖最后由 gaopanfeng1987 于 2010-8-18 15:54 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-21 13:20 , Processed in 0.069355 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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