2012-11-02 42 views
10

我正在使用Fabric.js,并在一个位置创建了一个Fabric canvas对象。使用fabric js获取画布对象

var x = new fabric.Canvas("mycanvas"); 

现在,在另一个地方,我想访问该对象,其中的“x”将不可用。那么我怎样才能获得相同的布料画布对象。

我不想改变x的范围或将x传递给arg。

另外,如何从织物画布对象中获取toDataURL?

+0

如果您没有提供参考,它将无法访问。这就是范围的工作原理。 – alex

回答

18

假设mycanvas是Canvas元素的ID,你可以存储Canvas元素本身的参考结构对象:

var x = new fabric.Canvas("mycanvas"); 
document.getElementById("mycanvas").fabric = x; 

然后你可以检索对象,你想要的任何时间:

var y = document.getElementById("mycanvas").fabric; 
var url = y.toDataURL("png", 1); 
+0

y是织物画布对象,因此您需要以不同的方式使用toDataURL [请参阅此文件](http://fabricjs.com/docs/fabric.Canvas.html#toDataURL) – Rotem