一种覆盖HTMLElement上的构造函数的方法,以便我可以添加自定义代码

Pau*_* Go 4 javascript

我试图以某种方式覆盖HTMLElement的构造函数(特别是HTMLDivElement),这样无论何时通过任何方式创建,我都可以运行一些自定义逻辑.

显然这不起作用:

HTMLDivElement.prototype.constructor = function()
{
  alert('div created!');
}

有没有办法解决这个问题?即使有一种方法可以在创建新元素(不是页面源HTML的一部分)时获得某种事件/触发器,这将是有帮助的.

编辑:也许我们可以用Mozilla的手表/非手表方法来观察变化吗?

Nat*_*ate 8

我要去见地狱:

document.createElement = (function (fn)
{
    return function (tagName)
    {
        var elem = fn.call(document, tagName);
        alert('just created a new ' + elem.tagName);
        return elem;
    };
})(document.createElement);        
Run Code Online (Sandbox Code Playgroud)

  • 内特……有趣的是,你会发布这个,这是我经过一番修改后想出的……虽然我太害羞了,不敢发布:) (2认同)
  • +1所以你可以在StackOverflow地狱中获得更多乐趣. (2认同)