相关疑难解决方法(0)

Javascript添加事件跨浏览器功能实现:使用attachEvent/addEventListener vs内联事件

为了添加事件,我们可以使用这个简单的第一个解决方案:

function AddEvent(html_element, event_name, event_function) 
{       
   if(html_element.attachEvent) //Internet Explorer
      html_element.attachEvent("on" + event_name, function() {event_function.call(html_element);}); 
   else if(html_element.addEventListener) //Firefox & company
      html_element.addEventListener(event_name, event_function, false); //don't need the 'call' trick because in FF everything already works in the right way          
} 
Run Code Online (Sandbox Code Playgroud)

或者这第二个解决方案(添加内联事件):

function AddEvent(html_element, event_name, event_function) 
{       
   var old_event = html_element['on' + event_name];
   if(typeof old_event !== 'function')
      html_element['on' + event_name] = function() { event_function.call(html_element); };
   else
      html_element['on' + event_name] = function() { old_event(); event_function.call(html_element); };
}
Run Code Online (Sandbox Code Playgroud)

这些都是跨浏览器,可以这种方式使用: …

javascript events event-handling javascript-events

10
推荐指数
1
解决办法
1万
查看次数