Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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 在fabric.js中设置背景图像会在单击时引发异常_Javascript_Fabricjs - Fatal编程技术网

Javascript 在fabric.js中设置背景图像会在单击时引发异常

Javascript 在fabric.js中设置背景图像会在单击时引发异常,javascript,fabricjs,Javascript,Fabricjs,我试图使用fabric.js为画布设置更改背景图像,但遇到了一些不稳定的情况。添加背景的调用没有任何问题,但是如果我单击画布上的任何地方,它将变为空白并似乎移动到选择模式-尽管这似乎只是由于未捕获的异常 我不知道是什么导致了这种行为。它在这个页面上运行良好,但是下面的JSFIDLE失败了 试试这个 canvas.setBackgroundImage('add image source', canvas.renderAll.bind(canvas), { scaleY: canva

我试图使用fabric.js为画布设置更改背景图像,但遇到了一些不稳定的情况。添加背景的调用没有任何问题,但是如果我单击画布上的任何地方,它将变为空白并似乎移动到选择模式-尽管这似乎只是由于未捕获的异常

我不知道是什么导致了这种行为。它在这个页面上运行良好,但是下面的JSFIDLE失败了

试试这个

canvas.setBackgroundImage('add image source', canvas.renderAll.bind(canvas), {
        scaleY: canvas.height ,
        scaleX: canvas.width 
    });

    canvas.renderAll();
试试这个

canvas.setBackgroundImage('add image source', canvas.renderAll.bind(canvas), {
        scaleY: canvas.height ,
        scaleX: canvas.width 
    });

    canvas.renderAll();

尝试在添加到画布之前加载图像。如果您添加了一个尚未加载的图像,您将得到一个异常。这对我们有用:

var img = new Image();
img.onload = function(){
   canvas.setBackgroundImage(img.src, canvas.renderAll.bind(canvas), {
            originX: 'left',
            originY: 'top',
            left: 0,
            top: 0
        });
};
img.src = "your image source"
问候,,
Benick

在添加到画布之前尝试加载图像。如果您添加了一个尚未加载的图像,您将得到一个异常。这对我们有用:

var img = new Image();
img.onload = function(){
   canvas.setBackgroundImage(img.src, canvas.renderAll.bind(canvas), {
            originX: 'left',
            originY: 'top',
            left: 0,
            top: 0
        });
};
img.src = "your image source"
问候,,
Benick

查看堆栈上的此参考链接查看堆栈上的此参考链接抱歉,但问题似乎是结构内部的。以下链接来自setBackgroundImage函数上的文档,其失败方式与此相同。抱歉,此问题似乎是fabric内部的问题。以下链接来自setBackgroundImage函数的docs,它以同样的方式失败。我发现将图像移动到同一个域解决了问题,但根据我看到的行为,上面的答案似乎完全有效-并允许从不同域提取图像。此解决方案对我有效。在添加到画布之前,我们必须加载图像。我发现,将图像移动到同一个域解决了问题,但根据我看到的行为,上面的答案似乎完全有效,并且允许从不同域提取图像。这个解决方案对我有效。我们必须在添加到画布之前加载图像