File tree Expand file tree Collapse file tree 2 files changed +26
-11
lines changed
Expand file tree Collapse file tree 2 files changed +26
-11
lines changed Original file line number Diff line number Diff line change @@ -16,7 +16,11 @@ var {TEXT_NODE} = require('../shared/HTMLNodeType');
1616 * @return {?object }
1717 */
1818function getModernOffsets ( outerNode ) {
19- var selection = window . getSelection && window . getSelection ( ) ;
19+ var win = window ;
20+ if ( outerNode . ownerDocument && outerNode . ownerDocument . defaultView ) {
21+ win = outerNode . ownerDocument . defaultView ;
22+ }
23+ var selection = win . getSelection && win . getSelection ( ) ;
2024
2125 if ( ! selection || selection . rangeCount === 0 ) {
2226 return null ;
@@ -153,11 +157,16 @@ function getModernOffsetsFromPoints(
153157 * @param {object } offsets
154158 */
155159function setModernOffsets ( node , offsets ) {
156- if ( ! window . getSelection ) {
160+ var win = window ;
161+ if ( node . ownerDocument && node . ownerDocument . defaultView ) {
162+ win = node . ownerDocument . defaultView ;
163+ }
164+
165+ if ( ! win . getSelection ) {
157166 return ;
158167 }
159168
160- var selection = window . getSelection ( ) ;
169+ var selection = win . getSelection ( ) ;
161170 var length = node [ getTextContentAccessor ( ) ] . length ;
162171 var start = Math . min ( offsets . start , length ) ;
163172 var end = offsets . end === undefined ? start : Math . min ( offsets . end , length ) ;
Original file line number Diff line number Diff line change @@ -71,14 +71,20 @@ function getSelection(node) {
7171 start : node . selectionStart ,
7272 end : node . selectionEnd ,
7373 } ;
74- } else if ( window . getSelection ) {
75- var selection = window . getSelection ( ) ;
76- return {
77- anchorNode : selection . anchorNode ,
78- anchorOffset : selection . anchorOffset ,
79- focusNode : selection . focusNode ,
80- focusOffset : selection . focusOffset ,
81- } ;
74+ } else {
75+ var win = window ;
76+ if ( node . ownerDocument && node . ownerDocument . defaultView ) {
77+ win = node . ownerDocument . defaultView ;
78+ }
79+ if ( win . getSelection ) {
80+ var selection = win . getSelection ( ) ;
81+ return {
82+ anchorNode : selection . anchorNode ,
83+ anchorOffset : selection . anchorOffset ,
84+ focusNode : selection . focusNode ,
85+ focusOffset : selection . focusOffset ,
86+ } ;
87+ }
8288 }
8389}
8490
You can’t perform that action at this time.
0 commit comments