You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

回调函数参数ctx未定义为何能运行?Vis.js afterDrawing事件疑问

代码可正常运行的原因

你观察到ctx没有显式定义依然能使用,是因为它是Vis.js事件触发时自动传递给回调函数的内置参数:

  • 我们通过network.on("afterDrawing", 回调函数)绑定事件监听时,不需要自己主动给回调函数传参
  • 每当Vis.js完成画布绘制触发afterDrawing事件时,会自动把当前的Canvas 2D上下文对象作为第一个参数传入我们绑定的回调函数
  • 代码里的function (ctx) {}中的ctx只是我们给这个自动传入的参数起的变量名,你换成任意合法变量名比如context也能正常运行

核心代码参考:

network.on("afterDrawing", function (ctx) {
    var dataURL = ctx.canvas.toDataURL();
    document.getElementById('canvasImg').src = dataURL;
});

Vis.js对afterDrawing事件的官方说明如下:

事件名称传递属性事件描述
afterDrawingcanvas context在canvas绘制完成后触发,可用于在网络可视化图层上方进行额外绘制。

内容的提问来源于stack exchange,提问作者Ooker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:45:04