我在我的画布应用程序中使用了 fabric.js,toDataURL 方法可以正常工作,除非画布上有图像。当我将图像添加到画布并调用 toDataURL 时,它会显示一个空白页面。
//When i call it from chrome console
canvas.toDataURL();
//It returns a working data url with no problem.
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAAGkCAYAAAAPPajHAAAgAElEQ…fpmwgogX1TrjoqP0FACewngtZh+iYCSmDflKuOyk8Q+H+CKCqUW0spTgAAAABJRU5ErkJggg=="
//When i execute same code in a .js file it returns a data url which shows a blank image.
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAAGkCAYAAAAPPajHAAAKC0lEQ…sBAmEBAw6XJzoBA/YDBMICBhwuT3QCBuwHCIQFDDhcnugEHt/IAaW9dzALAAAAAElFTkSuQmCC"
有趣的是,它可以在 chrome 开发控制台上运行,但不能在 .js 文件中运行,即使它是相同的代码。我注意到工作数据 url 以 '==' 结尾,但另一个不是。但是我不知道这意味着什么。