日期:2014-05-16  浏览次数:20462 次

求大神指导,根据浏览器类型使用不同的捕获事件方法,编译不报错,FF下正常,但是IE下无任何反应
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>事件 及 事件句柄</title>
<script type="text/javascript" src="../js/common/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(function() {
// 1 捕获事件 判断浏览器类型使用不同的捕获事件方法
var userAgent = navigator.userAgent;

console.info(userAgent);
if(userAgent.indexOf("MSIE")>0) {
document.getElementById("testName").setCapture();// IE
} else if(userAgent.indexOf("FireFox")>0) {
window.captureEvents(Event.CLICK);// FF
}

// 2 定义事件处理
function clickEvent(event) {
var srcElement = event.target?event.target:(event.srcElement?event.srcElement:(event.relatedTarget?event.event.relatedTarget:event.currentTarget));// 目标对象 兼容IE & FF
//var fromElement = event.fromElement;// 对象源(常用于mouseout mouseover)
//var toElement = event.toElement;// 事件后的目标源(常用于mouseout mouseover)
//console.info(srcElement)
var srcId = srcElement.id;
console.info(srcId);

var flag = false;
if(srcId == "testName") {
flag = true;
}
console.info(flag);
return flag;
};
// 3 注册事件处理(替换)
window.onclick = clickEvent; // onclick 小写
//document.onclick = clickEvent;
document.getElementsByName("testName").onClick = clickEvent;
document.getElementsByName("testName2").onClick = clickEvent;
//document.onclick = clickHandler;
});
</script>
</head>
<body>
<input id="testName" type="text" name="testName" maxlength="20" value="请输入123" />
<input id="testName2" type="text" name="testName2" maxlength="20" />
</body>
</html>
jssetCapture?浏览器 js setcapture 浏览器 事件

------解决方案--------------------
window.onclick =function(e){e=e
------解决方案--------------------
event; clickEvent(e);};
------解决方案--------------------
ie下event是全局屬性,你不手動傳參是接收不到的

function clickEvent(ev) {
    var e = ev 
JavaScript学习札记(十三) 返回函数和"自定义"函数