【问题标题】:Hook canvas's toDataURL钩画布的 toDataURL
【发布时间】:2018-12-31 02:25:59
【问题描述】:

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

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


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

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

jsFiddle,钩住alert和钩住document.createElement()

参考文献

【问题讨论】:

  • 好的,看看我编辑的答案。 (顺便说一句,你应该评论我的回答,因为当你编辑你的问题时我没有收到警报;)
  • :) 完成测试 ==> jsfiddle.net/81kgbmnx/30

标签: javascript canvas hook todataurl


【解决方案1】:

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

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()

【讨论】:

    猜你喜欢
    • 2018-03-15
    • 2012-11-30
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2015-09-15
    • 2015-03-12
    • 2013-11-04
    • 2014-05-22
    相关资源
    最近更新 更多