以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  跨浏览器Javascript Event Library  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=69623)


--  作者:hexun831012
--  发布时间:11/19/2008 4:49:00 PM

--  跨浏览器Javascript Event Library
if(!window.attachEvent)
{
 Window.prototype.attachEvent = function(sType, fEvent)
 {
  this.addEventListener(sType.substring(2), fEvent, false);
 }

 Window.prototype.detachEvent = function(sType, fEvent)
 {
  this.removeEventListener(sType.substring(2), fEvent, false);
 }

 Element.prototype.attachEvent = function(sType, fEvent)
 {
  this.addEventListener(sType.substring(2), fEvent, false);
 }

 Element.prototype.detachEvent = function(sType, fEvent)
 {
  this.removeEventListener(sType.substring(2), fEvent, false);
 }

 Event.prototype.__defineSetter__("returnValue", function(bValue)
 {
  if(!bValue)
  {
   this.preventDefault();
  }
 })

 Event.prototype.__defineSetter__("cancelBubble", function(bValue)
 {
  if(bValue)
  {
   this.stopPropagation();
  }
 })

 Event.prototype.__defineGetter__("srcElement", function()
 {
  return this.target;
 })

 Event.prototype.__defineGetter__("fromElement", function()
 {
  return this.currentTarget;
 })

 Event.prototype.__defineGetter__("toElement", function()
 {
  return this.relatedTarget;
 })
}


--  作者:hexun831012
--  发布时间:11/19/2008 4:50:00 PM

--  
申请精华,不知道Admin的意思。。。
--  作者:hexun831012
--  发布时间:11/20/2008 12:07:00 PM

--  
补上批注:
if(!window.attachEvent)
{
//附加事件(window)
//sType: 事件类型(如onclick)
//fEvent: 事件(一个function)
Window.prototype.attachEvent = function(sType, fEvent)
{
  this.addEventListener(sType.substring(2), fEvent, false);
}

//取消事件(window)
//sType: 事件类型(如onclick)
//fEvent: 事件(一个function)
Window.prototype.detachEvent = function(sType, fEvent)
{
  this.removeEventListener(sType.substring(2), fEvent, false);
}

//附加事件(element)
//sType: 事件类型(如onclick)
//fEvent: 事件(一个function)
Element.prototype.attachEvent = function(sType, fEvent)
{
  this.addEventListener(sType.substring(2), fEvent, false);
}

//取消事件(element)
//sType: 事件类型(如onclick)
//fEvent: 事件(一个function)
Element.prototype.detachEvent = function(sType, fEvent)
{
  this.removeEventListener(sType.substring(2), fEvent, false);
}

//阻止事件(window), 相当于return false
Event.prototype.__defineSetter__("returnValue", function(bValue)
{
  if(!bValue)
  {
   this.preventDefault();
  }
})

//阻止事件冒泡
Event.prototype.__defineSetter__("cancelBubble", function(bValue)
{
  if(bValue)
  {
   this.stopPropagation();
  }
})

//获取事件元素
Event.prototype.__defineGetter__("srcElement", function()
{
  return this.target;
})

//获取起点元素
Event.prototype.__defineGetter__("fromElement", function()
{
  return this.currentTarget;
})

//获取目标元素
Event.prototype.__defineGetter__("toElement", function()
{
  return this.relatedTarget;
})
}


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms