解决firefox不支持window.event.returnValue = false

1.       火狐中所有使用event相关的代码无法使用.

event是IE封装过的全局对象,控制所有事的事件,但是这个对象在火狐中不存在,所以在火狐中无法使用,特别是event.keyCode也是无法取得的。

解决方法:

下面这段JS重新封装了EVENT对象,直接在页面引用,原先的events代码均可试用于火狐:

<script>

/*firefox----这段js重新封装了event对象,经验证可以在火狐下支持!----*/

    function __firefox(){

        HTMLElement.prototype.__defineGetter__("runtimeStyle", __element_style);

        window.constructor.prototype.__defineGetter__("event", __window_event);

        Event.prototype.__defineGetter__("srcElement", __event_srcElement);

    }

    function __element_style(){

        return this.style;

    }

    function __window_event(){

        return __window_event_constructor();

    }

    function __event_srcElement(){

        return this.target;

    }

    function __window_event_constructor(){

        if(document.all){

            return window.event;

        }

        var _caller = __window_event_constructor.caller;

        while(_caller!=null){

            var _argument = _caller.arguments[0];

            if(_argument){

                var _temp = _argument.constructor;

                if(_temp.toString().indexOf("Event")!=-1){

                    return _argument;

                }

            }

            _caller = _caller.caller;

        }

        return null;

    }

    if(window.addEventListener){

        __firefox();

    }

    /*end firefox------------------------------------------------*/

</script>


2.       event.returnValue = false无法使用

虽然重新封装了event但是这个方法还是无法支持

解决方法:

调用event.returnValue = false时候使用以下方法:

function setReturnValueFalse()

{  

    if(document.all)

    {

        window.event.returnValue = false;

    }

    else

    {

        event.preventDefault();

    }

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值