天空的脚印

IE与Firefox兼容event

/*为兼容 IE和firefox 的event对象,重写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*/

有了这段代码之后Firefox下就可使用event了。

posted on 2009-05-18 15:41  天空的脚印  阅读(645)  评论(0)    收藏  举报