10
appendChild = function(message) {
    console.log("intercepted!");
}

使用上面的代码似乎不起作用。

有谁知道?

4

2 回答 2

16

您可能想要替换的是Element.prototype.appendChild,但这可能是一个坏主意。

intercepted此示例在插入的元素中添加文本:

var f = Element.prototype.appendChild;
Element.prototype.appendChild = function(){f.apply(this, arguments);arguments[0].innerHTML="!Intercepted!"; };
document.body.appendChild(document.createElement("div"));

示范

于 2013-01-10T18:55:25.633 回答
4

不建议覆盖本机函数,但如果这样做,请确保返回附加元素,以防止使用本机“appendChild”函数返回值的代码出现问题:

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);
};
于 2015-03-19T12:47:31.293 回答