Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从html5画布生成的图像无法保存在chrome中_Javascript_Google Chrome_Html5 Canvas_Fabricjs - Fatal编程技术网

Javascript 从html5画布生成的图像无法保存在chrome中

Javascript 从html5画布生成的图像无法保存在chrome中,javascript,google-chrome,html5-canvas,fabricjs,Javascript,Google Chrome,Html5 Canvas,Fabricjs,我有一个html画布,其中的东西是由用户(使用)绘制的 简而言之,问题是(仅在Chrome中): a) 右键单击>保存画布中的快照图像不工作。 b) 有时,尝试打印时快照图像为空白 我已在以下位置创建了测试版本: 请办理登机手续 画布旁边有两个按钮-下载和打印。 两者都有不同的问题-仅在Chrome中 单击下载按钮时,将打开一个包含快照的窗口 使用-canvas.toDataURL()的画布图像。 然后用户可以右键单击图像并保存它。 这在Firefox中可以正常工作(用户可以右键单击->保存图像

我有一个html画布,其中的东西是由用户(使用)绘制的

简而言之,问题是(仅在Chrome中):
a) 右键单击>保存画布中的快照图像不工作。
b) 有时,尝试打印时快照图像为空白

我已在以下位置创建了测试版本:
请办理登机手续

画布旁边有两个按钮-下载和打印。
两者都有不同的问题-仅在Chrome中

单击下载按钮时,将打开一个包含快照的窗口 使用-canvas.toDataURL()的画布图像。 然后用户可以右键单击图像并保存它。 这在Firefox中可以正常工作(用户可以右键单击->保存图像)。 在chrome中,对话框窗口打开时图像显示完美,但如果右键单击图像,则在选择“保存图像”后,什么也不会发生。 图像正常,您可以将其从对话框窗口直接拖放保存到桌面。 但从右键单击菜单选项保存不起作用

在“下载”按钮上,单击我正在调用类似以下的函数,以弹出一个包含快照的窗口

function open_dialog() {
  var canvas_image_data = canvas.toDataURL();

  var dlWindow = window.open("", "Download Image", "directories=0,titlebar=0,toolbar=0,location=0,status=0,menubar=0,scrollbars=no,resizable=no,width=500, height=500");

  dlWindow.document.write('<img src="'+canvas_image_data+'" style="border: 1px solid #FF0000;" width="300" height="300"/>');

  return dlWindow;
}
函数打开_对话框(){
var canvas_image_data=canvas.toDataURL();
var dlWindow=window.open(“,”下载图像“,”目录=0,标题栏=0,工具栏=0,位置=0,状态=0,菜单栏=0,滚动条=no,可调整大小=no,宽度=500,高度=500”);
dlWindow.document.write(“”);
返回窗口;
}
单击“打印”按钮时,将打开带有图像快照的对话框,并调用浏览器的打印功能。 这在FireFox中也可以,但在chrome中,图像在打印预览中有时是空白的。在我的测试中(在一些设备中,在打印按钮点击中,比率类似于每3/4次丢失一次)。


提前感谢您对这些问题的任何建议/线索

我来自另一个问题,问题与此完全相同(映像异步加载)

尽管您创建了一个带有数据URL的图像,但该图像仍会触发其
load
事件。我的意思是,在加载图像()之前调用print。您必须等待图像抛出
load
事件,然后调用print方法


这里你有一个脏补丁,所以你得到了一个想法:

我来自另一个问题与完全相同的问题(图像异步加载)

尽管您创建了一个带有数据URL的图像,但该图像仍会触发其
load
事件。我的意思是,在加载图像()之前调用print。您必须等待图像抛出
load
事件,然后调用print方法



这里有一个脏补丁,所以你得到了一个想法:

你能创建一个小提琴吗?请检查:你想将画布另存为图像吗?我正在使用canvas.toDataURL()方法拍摄画布的快照。例如:,这里显示了一个图像(画布的快照),但它不能右键单击并从chrome浏览器保存到磁盘。请创建小提琴,好吗?请检查:是否要将画布另存为图像?我正在使用canvas.toDataURL()方法拍摄画布快照。例如:,此处显示图像(画布快照),但它不能右键单击并从chrome浏览器保存到磁盘。感谢@Jorge Fuentes González提供的解决方案。它解决了打印预览丢失的问题。我仍在搜索以解决主要问题(a)-无法右键单击,然后保存图像。我还不知道为什么chrome不允许保存加载的图像(预览ok,可以拖放和保存):(@TanvirAhmed您可以使用它来允许用户下载图像:非常感谢@Jorge Fuentes González,我非常感谢您的帮助。我最终解决了您提供的示例中的剩余下载问题。我加载了下载窗口,如下所示-在Chrome和Firefox中都正常工作:)@TanvirAhmed yay!^^^感谢@Jorge Fuentes González提供的解决方案。它解决了打印预览丢失的问题。我仍在搜索以解决主要问题(a)-无法右键单击,然后保存图像。我还不知道-为什么chrome不允许保存加载的图像(预览确定,可以拖放和保存):(@TanvirAhmed您可以使用它来允许用户下载图像:非常感谢@Jorge Fuentes González,我真的非常感谢您的帮助。我最终解决了您提供的示例中的剩余下载问题。我加载了下载窗口,如下所示-在Chrome和Firefox中都运行正常:)@TanvirAhmed yay^^