Files
ttstd-infinite-canvas/web
cn-derekdu d5741c98fe fix(canvas): 图片裁剪 - 修复云端图片跨域导致的确认裁剪无反应
裁剪属于像素级操作,需要先把图片画到 canvas 再导出。云端图片地址通常不带
CORS 头,canvas 会被标记为跨域,toDataURL 直接抛 SecurityError;而 loadImage
只挂了 onload、没有 onerror,加载失败时 Promise 永久挂起。两者叠加后,用户
侧的表现都是「点击确认裁剪没有任何反应」,控制台之外看不到原因。

- loadImage 补充 onerror,避免加载失败时 Promise 永不落地
- 仅对非 data:/blob: 的地址设置 crossOrigin=anonymous,本地资源设了反而
  可能取不到像素
- 新增 resolveCroppableImageSource():优先用本地媒体缓存 Blob 构造同源
  objectURL,取不到再回退原始地址,并在 finally 中 revoke
- cropImageNode 补充 try/catch 与失败提示,让错误可见而不是静默失败

无外部行为变化,仅修复失败路径与错误反馈。
2026-09-22 16:31:15 +08:00
..