From 30f80dfd8087a89f653eaa89ae7de9e5db597959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B0=D0=B2=D1=80=D1=91=D0=BD=D0=BE=D0=B2=20=D0=90?= =?UTF-8?q?=D0=BD=D1=82=D0=BE=D0=BD?= Date: Sat, 1 Mar 2014 18:09:27 +0800 Subject: [PATCH] Auto create Stage container in nodejs --- src/Global.js | 2 +- src/Stage.js | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Global.js b/src/Global.js index 362d6f38..c90967ab 100644 --- a/src/Global.js +++ b/src/Global.js @@ -289,7 +289,7 @@ var Kinetic = {}; // like Node. var Canvas = require('canvas'); var jsdom = require('jsdom').jsdom; - var doc = jsdom('
'); + var doc = jsdom(''); var KineticJS = factory(); diff --git a/src/Stage.js b/src/Stage.js index fc76f9c6..7c6bdc47 100644 --- a/src/Stage.js +++ b/src/Stage.js @@ -57,8 +57,6 @@ Kinetic.Util.addMethods(Kinetic.Stage, { ___init: function(config) { this.nodeType = STAGE; - // default container id. usefull for nodejs - config.container = config.container || 'con'; // call super constructor Kinetic.Container.call(this, config); this._id = Kinetic.idCounter++; @@ -630,6 +628,14 @@ }, _buildDOM: function() { var container = this.getContainer(); + if (!container) { + if (Kinetic.Util.isBrowser()) { + throw 'Stage has not container. But container is required'; + } else { + // automatically create element for jsdom in nodejs env + container = Kinetic.document.createElement(DIV); + } + } // clear content inside container container.innerHTML = EMPTY_STRING;