Skip to content

Commit 694b701

Browse files
committed
Merge pull request react-bootstrap#463 from martijnvermaat/use-ownerdocument
Use .ownerDocument instead of root document
2 parents 560b0e8 + ee0382e commit 694b701

File tree

6 files changed

+12
-10
lines changed

6 files changed

+12
-10
lines changed

src/AffixMixin.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ const AffixMixin = {
104104
this._onWindowScrollListener =
105105
EventListener.listen(window, 'scroll', this.checkPosition);
106106
this._onDocumentClickListener =
107-
EventListener.listen(document, 'click', this.checkPositionWithEventLoop);
107+
EventListener.listen(React.findDOMNode(this).ownerDocument, 'click', this.checkPositionWithEventLoop);
108108
},
109109

110110
componentWillUnmount() {

src/DropdownStateMixin.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,12 @@ const DropdownStateMixin = {
5656
},
5757

5858
bindRootCloseHandlers() {
59+
let doc = React.findDOMNode(this).ownerDocument;
60+
5961
this._onDocumentClickListener =
60-
EventListener.listen(document, 'click', this.handleDocumentClick);
62+
EventListener.listen(doc, 'click', this.handleDocumentClick);
6163
this._onDocumentKeyupListener =
62-
EventListener.listen(document, 'keyup', this.handleDocumentKeyUp);
64+
EventListener.listen(doc, 'keyup', this.handleDocumentKeyUp);
6365
},
6466

6567
unbindRootCloseHandlers() {

src/FadeMixin.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ export default {
5757

5858
componentWillUnmount: function () {
5959
let els = getElementsAndSelf(React.findDOMNode(this), ['fade']),
60-
container = (this.props.container && React.findDOMNode(this.props.container)) || document.body;
60+
container = (this.props.container && React.findDOMNode(this.props.container)) || React.findDOMNode(this).ownerDocument.body;
6161

6262
if (els.length) {
6363
this._fadeOutEl = document.createElement('div');

src/Modal.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,9 @@ const Modal = React.createClass({
128128

129129
componentDidMount() {
130130
this._onDocumentKeyupListener =
131-
EventListener.listen(document, 'keyup', this.handleDocumentKeyUp);
131+
EventListener.listen(React.findDOMNode(this).ownerDocument, 'keyup', this.handleDocumentKeyUp);
132132

133-
let container = (this.props.container && React.findDOMNode(this.props.container)) || document.body;
133+
let container = (this.props.container && React.findDOMNode(this.props.container)) || React.findDOMNode(this).ownerDocument.body;
134134
container.className += container.className.length ? ' modal-open' : 'modal-open';
135135

136136
if (this.props.backdrop) {
@@ -146,7 +146,7 @@ const Modal = React.createClass({
146146

147147
componentWillUnmount() {
148148
this._onDocumentKeyupListener.remove();
149-
let container = (this.props.container && React.findDOMNode(this.props.container)) || document.body;
149+
let container = (this.props.container && React.findDOMNode(this.props.container)) || React.findDOMNode(this).ownerDocument.body;
150150
container.className = container.className.replace(/ ?modal-open/, '');
151151
},
152152

src/OverlayMixin.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,6 @@ export default {
6363
},
6464

6565
getContainerDOMNode() {
66-
return React.findDOMNode(this.props.container || document.body);
66+
return React.findDOMNode(this.props.container || React.findDOMNode(this).ownerDocument.body);
6767
}
6868
};

src/utils/domUtils.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function getOffset(DOMNode) {
2121
return window.jQuery(DOMNode).offset();
2222
}
2323

24-
let docElem = document.documentElement;
24+
let docElem = DOMNode.ownerDocument.documentElement;
2525
let box = { top: 0, left: 0 };
2626

2727
// If we don't have gBCR, just use 0,0 rather than error
@@ -89,7 +89,7 @@ function getPosition(elem, offsetParent) {
8989
* @returns {HTMLElement}
9090
*/
9191
function offsetParentFunc(elem) {
92-
let docElem = document.documentElement;
92+
let docElem = elem.ownerDocument.documentElement;
9393
let offsetParent = elem.offsetParent || docElem;
9494

9595
while ( offsetParent && ( offsetParent.nodeName !== 'HTML' &&

0 commit comments

Comments
 (0)