给他继承 就OK!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
function alertHello()
{
alert("hello");
}function function_proxy(ori_function){
function dest_function(){
alert("come proxy");
ori_function();
} return Object.extend(dest_function,ori_function);
}function addAlertHello(){
var t = document.getElementById("div_toclick");
var b = alertHello;
b.id ='aa';
var tmp_b = b;
b = function_proxy(b);
alert(b.id)
//t.addEventListener("click", b, false);
//b = tmp_b;
}Object.extend = function(des,source){
for(var p in source){
des[p] = source[p];
}
return des;
};
</script>
</HEAD>
<body>
<div id="div_toclick" > Click Me Div</div>
<input type=button value = "add Click Event To Div" onclick="addAlertHello()">
</body>
</HTML>
t 没有这个函数...
function dest_function(){
ori_function();
} for( var p in ori_function) {
dest_function[p] = ori_function[p];
}
//return ori_function;
return dest_function;
}
如果是:return ori_function;
页面就可以正确执行
t.addEventListener("click", b, false);
这步已经完成。
t.addEventListener("click", b, false);
t 没有这个函数...你在什么下面测的。 不会是IE吧???
<script type="text/javascript">function proxy(fn){
var proxy = function(){
alert("this is proxy");
return fn.apply(this, arguments);
}
return proxy;
}
function alertHello(e)
{
alert("this is " + e);
alert("hello");
}
function addAlertHello(){
var t = document.getElementById("div_toclick");
var b = alertHello;
var tmp_b = b;
b = proxy(b);
t.addEventListener("click", b, false);
b = tmp_b;
}
</script><body>
<div id="div_toclick" > Click Me Div</div>
<input type=button value = "add Click Event To Div" onclick="addAlertHello()">
</body>
不是我回复的啊我在firefox下测的
好,用firebug劫持函数的时候也是这样子做的
刚才试了一下,效果和添加两个事件函数:t.addEventListener("click", a, false);
t.addEventListener("click", b, false);
一样,我的函数响应了,而google原来点击"免费订阅"的函数没有被执行,不知道为什么
我在firefox下试的