Ticket #654: events.patch

File events.patch, 2.3 kB (added by mokhet, 6 years ago)
  • htmlarea.js

     
    44504450  // alert('Flushed ' + x + ' events.'); 
    44514451}; 
    44524452 
    4453 HTMLArea._addEvent = function(el, evname, func) { 
    4454   if (HTMLArea.is_ie) { 
     4453if (document.addEventListener) { 
     4454  HTMLArea._addEvent = function(el, evname, func) { 
     4455    el.addEventListener(evname, func, true); 
     4456    HTMLArea._eventFlushers.push([el, evname, func]); 
     4457  }; 
     4458  HTMLArea._removeEvent = function(el, evname, func) { 
     4459    el.removeEventListener(evname, func, true); 
     4460  }; 
     4461  HTMLArea._stopEvent = function(ev) { 
     4462    ev.preventDefault(); 
     4463    ev.stopPropagation(); 
     4464  }; 
     4465} else if (document.attachEvent) { 
     4466  HTMLArea._addEvent = function(el, evname, func) { 
    44554467    el.attachEvent("on" + evname, func); 
    4456   } else { 
    4457     el.addEventListener(evname, func, true); 
    4458   } 
    4459   HTMLArea._eventFlushers.push([el, evname, func]); 
    4460 }; 
     4468    HTMLArea._eventFlushers.push([el, evname, func]); 
     4469  }; 
     4470  HTMLArea._removeEvent = function(el, evname, func) { 
     4471    el.detachEvent("on" + evname, func); 
     4472  }; 
     4473  HTMLArea._stopEvent = function(ev) { 
     4474    try{ 
     4475      ev.cancelBubble = true; 
     4476      ev.returnValue = false; 
     4477    } catch(e){} 
     4478  }; 
     4479} else { 
     4480  HTMLArea._addEvent = function(el, evname, func) { alert('_addEvent is not supported'); }; 
     4481  HTMLArea._removeEvent = function(el, evname, func) { alert('_removeEvent is not supported'); }; 
     4482  HTMLArea._stopEvent = function(ev) { alert('_stopEvent is not supported'); }; 
     4483} 
    44614484 
    44624485HTMLArea._addEvents = function(el, evs, func) { 
    44634486  for (var i = evs.length; --i >= 0;) { 
     
    44654488  } 
    44664489}; 
    44674490 
    4468 HTMLArea._removeEvent = function(el, evname, func) { 
    4469   if (HTMLArea.is_ie) { 
    4470     el.detachEvent("on" + evname, func); 
    4471   } else { 
    4472     el.removeEventListener(evname, func, true); 
    4473   } 
    4474 }; 
    4475  
    44764491HTMLArea._removeEvents = function(el, evs, func) { 
    44774492  for (var i = evs.length; --i >= 0;) { 
    44784493    HTMLArea._removeEvent(el, evs[i], func); 
    44794494  } 
    44804495}; 
    44814496 
    4482 HTMLArea._stopEvent = function(ev) { 
    4483   if (HTMLArea.is_ie) { 
    4484     try{ 
    4485       ev.cancelBubble = true; 
    4486       ev.returnValue = false; 
    4487     } catch(e){} 
    4488   } else { 
    4489     ev.preventDefault(); 
    4490     ev.stopPropagation(); 
    4491   } 
    4492 }; 
    4493  
    44944497/** 
    44954498 * Adds a standard "DOM-0" event listener to an element. 
    44964499 * The DOM-0 events are those applied directly as attributes to