[编辑] 我应该更具体一些(感谢雷达下的回复!)。我希望 console.log 的触发器在对象调用 toDataURL
时捕获返回的 URI。在链接的jsfiddle中,调用toDataURL
的对象是canvas
。这可能是症结所在,因为我可能还需要捕获调用对象?我可以通过简单地将 canvas.toDataURL()
封装在 console.log 语句中来完成我想要的,但我希望它比那个更动态——这让我想到添加toDataURL
jsFiddle,更新:https://jsfiddle.net/spe4q1d8/170/
我正在尝试创建一个 Hook ,我可以将其放在 JavaScript 文件的顶部或底部,每次调用特定函数时都会触发 console.log
。我想要 Hook 的特定函数是 toDataURL()
HTMLCanvasElement.toDataURL() .
我已经能够在 alert
或 console.log
本身上设置一个 Hook ,但无法弄清楚如何 Hook toDataURL
。
jsFiddle, Hook alert
并 Hook document.createElement()
引用资料
最佳答案
例如,您可以扩展原型(prototype)函数:
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()
关于javascript - Hook Canvas 的 toDataURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51482108/