不同的浏览器之间存在兼容问题,在IE与标准浏览器之间存在很大的差异,所以在实现阻止浏览器默认行为和阻止事件冒泡就要考虑要它们之间的不同
/**
* 取消冒泡
* @param {事件} e
*/
function cancelBubble(e){
if(e.stopPropagation){
// w3c的方法取消冒泡
e.stopPropagation();
}else{
// 使用IE的方式来取消冒泡
e.cancelBubble=true;
}
}
/**
* 阻止浏览器默认行为
* @param {事件} e
*/
function preventDefault(e){
// 先判断是否支持w3c标准方式,否则采用IE解决方案
if(e.preventDefault){
// w3c的方法是e.preventDefault()
e.preventDefault();
}else{
// IE则使用的是e.returnValue=false
e.returnValue=false;
}
}