JS自定义浏览器事件派发

<!DOCTYPE html >
<html>
    <head>
        <meta charset="utf-8" />
        <title>浏览器事件派发</title>
        </head>
        <body>
            <input id="btn" type="button" onclick="alert('got it')" value="test"  />
            <script>
                var dispatch = function(ele,type){
                    if (document.all){
                        // IE浏览器支持fireEvent方法
                        ele.fireEvent('on'+type,evt)
                    } else{
                        // 其他标准浏览器使用dispatchEvent方法
                        var evt = document.createEvent( 'HTMLEvents' );
                        // initEvent接受3个参数:
                        // 事件类型,是否冒泡,是否阻止浏览器的默认行为
                        evt.initEvent(type, true, true);
                        ele.dispatchEvent(evt);
                    }
                };
                var btn = document.getElementById("btn");
                function handler(params) {
                    dispatch(btn, "click"); //派发事件
                }
            </script>
            <input type="button" value="click me to trigger button event" onclick="handler()" />
        </body>
    </body>
</html>
posted @ 2012-08-02 18:38  playerlife  阅读(2265)  评论(0编辑  收藏  举报