挂钩 canvas 的 toDataURL

Hook canvas's toDataURL

[编辑] 我应该更具体一些(感谢雷达下的回复!)。我希望 console.log 的触发器在对象调用 toDataURL 时捕获返回的 URI。在链接的jsfiddle中,调用toDataURL的对象是canvas。这可能是症结所在,因为我可能还需要捕获调用对象?我可以通过简单地将 canvas.toDataURL() 封装在 console.log 语句中来完成我想要的,但我希望它比那个更动态——这让我想到在 [= 上添加一个钩子11=]

jsFiddle,更新:https://jsfiddle.net/spe4q1d8/170/


我正在尝试创建一个挂钩,我可以将其放在 JavaScript 文件的顶部或底部,它会在每次调用特定函数时触发 console.log。我想要挂钩的特定函数是 toDataURL() HTMLCanvasElement.toDataURL()

我已经能够在 alertconsole.log 本身上设置一个挂钩,但不知道如何挂钩 toDataURL

jsFiddle,挂钩 alert 并挂钩 document.createElement()

参考资料

您可以扩展原型函数,例如:

var toDataURL = HTMLCanvasElement.prototype.toDataURL;
HTMLCanvasElement.prototype.toDataURL = function(type, encoderOptions) {
  var uri = toDataURL.call(this, type, encoderOptions);
  console.log(uri);
  return uri;
}

var canvas = document.createElement('canvas');
canvas.toDataURL()