From 58fae896fe60647b537e20e7f2281e0c377d59f0 Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Tue, 10 Sep 2013 22:54:41 -0700 Subject: [PATCH] Fix full-page rendering Closes #337. Test Plan: Opened react-page sample without any JS errors. Also ran grunt test after cherry-picking this changeset on top of #338. --- src/core/ReactMount.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/core/ReactMount.js b/src/core/ReactMount.js index 7b08196ac6e..d1b6f9b1450 100644 --- a/src/core/ReactMount.js +++ b/src/core/ReactMount.js @@ -28,6 +28,9 @@ var SEPARATOR = ReactInstanceHandles.SEPARATOR; var ATTR_NAME = 'data-reactid'; var nodeCache = {}; +var ELEMENT_NODE_TYPE = 1; +var DOC_NODE_TYPE = 9; + var $ = require('$'); /** Mapping from reactRootID to React component instance. */ @@ -235,13 +238,16 @@ var ReactMount = { */ prepareEnvironmentForDOM: function(container) { invariant( - container && container.nodeType === 1, + container && ( + container.nodeType === ELEMENT_NODE_TYPE || + container.nodeType === DOC_NODE_TYPE + ), 'prepareEnvironmentForDOM(...): Target container is not a DOM element.' ); - ReactEventEmitter.ensureListening( - ReactMount.useTouchEvents, - container.ownerDocument - ); + var doc = container.nodeType === ELEMENT_NODE_TYPE ? + container.ownerDocument : + container; + ReactEventEmitter.ensureListening(ReactMount.useTouchEvents, doc); }, /**