You can do this at the application level with the following code:
fabric.Canvas.prototype.getItemsByName = function(name) { var objectList = [], objects = this.getObjects(); for (var i = 0, len = this.size(); i < len; i++) { if (objects[i].name && objects[i].name === name) { objectList.push(objects[i]); } } return objectList; };
If the name of the object is unique, you can do something like this:
fabric.Canvas.prototype.getItemByName = function(name) { var object = null, objects = this.getObjects(); for (var i = 0, len = this.size(); i < len; i++) { if (objects[i].name && objects[i].name === name) { object = objects[i]; break; } } return object; };
Now you can call canvas.getItemByName('name1'); or canvas.getItemsByName('name1'); .
Kienz source share