比如说<div id="main" onclick="whoami()"></div>中有个onclick绑定了whoami方法,我知道有id="main"这个元素,但是我不知道onclick或者onmouseover之类的(行为更表现是分离的),我要怎么获取这个元素绑定了些什么方法,通过什么绑定的。一时想到的这个问题,自己没有想到怎么做,希望高手指点下.谢谢!
调试欢乐多
http://blog.csdn.net/theforever/article/details/6029382
<script type="text/javascript">
function getDomEvent(o){
var a="blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(' ');
var b=[];
for(var i=0;i<a.length;i++){
if(o['on'+a[i]] || o.getAttribute('on'+a[i])){
b.push(a[i]);
}
};
return b;
};
window.onload=function(){
var o=document.getElementById("test");
o.onclick=function(){
alert('1');
};
o.onblur=function(){
alert('1');
}
var b=getDomEvent(o);
alert(b);//绑定的事件列表
}
</script>
<input type="text" id="test" value="1" onfocus="alert('xxx')"/>
重写 addEventlistener
这样我就可以收集 我想要的信息 和做点预处理
function addEvent(dom,type,fn) {
if(document.addEventListener) {
dom.addEventListener(type, fn, false);
} else if(document.attachEvent) {
dom.attachEvent('on' + type, fn);
} else {
dom['on' + type] = fn;
};
dom["Listener-"+type]=!0;
}function getDomEvent(o){
var a="blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(' ');
var b=[];
for(var i=0;i<a.length;i++){
if(o['on'+a[i]] || o["Listener-"+a[i]] || o.getAttribute('on'+a[i])){
b.push(a[i]);
};
}; return b;
};
function x(){
alert('1')
}
window.onload=function(){
var o=document.getElementById("test");
o.onclick=function(){
alert('1');
};
o.onblur=function(){
alert('1');
};
addEvent(o,'mouseover',x);//使用这种方式去临听事件 var b=getDomEvent(o);
alert(b);//绑定的事件列表
}
</script>
<input type="text" id="test" value="1"/>
什么意思?我上面的例子,输出的是:blur,click,mouseover
不是这三个事件么?
function addEvent(dom,type,fn) {
if(document.addEventListener) {
dom.addEventListener(type, fn, false);
} else if(document.attachEvent) {
dom.attachEvent('on' + type, fn);
} else {
dom['on' + type] = fn;
};
dom["Listener-"+type]=!0;
}