Reputation: 1444
appendChild = function(message) {
console.log("intercepted!");
}
using the code above does not seem to work.
Anyone knows?
Upvotes: 10
Views: 6697
Reputation: 383
It is ill advised to overwrite native functions, but if you do it than make sure you return the appended element as well to prevent problems with code that uses the returned value of the native "appendChild" function:
window.callbackFunc = function(elem, args) {
// write some logic here
}
window.f = Element.prototype.appendChild;
Element.prototype.appendChild = function() {
window.callbackFunc.call(this, arguments);
return window.f.apply(this, arguments);
};
Upvotes: 4
Reputation: 382444
What you might want to replace is Element.prototype.appendChild
but it's probably a bad idea.
This example adds the text intercepted
in the inserted element :
var f = Element.prototype.appendChild;
Element.prototype.appendChild = function(){f.apply(this, arguments);arguments[0].innerHTML="!Intercepted!"; };
document.body.appendChild(document.createElement("div"));
Upvotes: 16