每次调用appendChild
时,我都想执行一些代码。我们假设我无法知道它将在何时何地被调用。我想我可以使用原型来做它,但它们似乎不起作用:
var actAppendChild = Element.prototype.appendChild;
Element.prototype.appendChild = function(node){
actAppendChild.call(this,node);
//execute custom code here...
console.log("foo");
}
document.body.appendChild(someNode);
但是“foo”不会打印到控制台,也不打印新原型函数中的任何代码。我做错了什么?
答案 0 :(得分:0)
我可以确认即使在IE8 +,Safari,Chrome和Opera上也能正常工作。 只是一个建议:将代码封装在一个闭包中以避免污染全局命名空间始终是最佳做法,如下所示:
(function(){
var actAppendChild = Element.prototype.appendChild;
....
}());