fixed focus issue
This commit is contained in:
parent
93e75e0111
commit
50fa81d191
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -322,20 +322,23 @@ module.exports = function(HB) {
|
|||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
createRange = function(fix) {
|
createRange = function(fix) {
|
||||||
var clength, left, right, s;
|
var clength, edited_element, range, s;
|
||||||
|
range = {};
|
||||||
s = dom_root.getSelection();
|
s = dom_root.getSelection();
|
||||||
clength = textfield.textContent.length;
|
clength = textfield.textContent.length;
|
||||||
left = Math.min(s.anchorOffset, clength);
|
range.left = Math.min(s.anchorOffset, clength);
|
||||||
right = Math.min(s.focusOffset, clength);
|
range.right = Math.min(s.focusOffset, clength);
|
||||||
if (fix != null) {
|
if (fix != null) {
|
||||||
left = fix(left);
|
range.left = fix(range.left);
|
||||||
right = fix(right);
|
range.right = fix(range.right);
|
||||||
}
|
}
|
||||||
return {
|
edited_element = s.focusNode;
|
||||||
left: left,
|
if (edited_element === textfield || edited_element === textfield.childNodes[0]) {
|
||||||
right: right,
|
range.isReal = true;
|
||||||
isReal: true
|
} else {
|
||||||
};
|
range.isReal = false;
|
||||||
|
}
|
||||||
|
return range;
|
||||||
};
|
};
|
||||||
writeRange = function(range) {
|
writeRange = function(range) {
|
||||||
var r, s, textnode;
|
var r, s, textnode;
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -315,18 +315,21 @@ module.exports = (HB)->
|
|||||||
textfield.value = content
|
textfield.value = content
|
||||||
else
|
else
|
||||||
createRange = (fix)->
|
createRange = (fix)->
|
||||||
|
range = {}
|
||||||
s = dom_root.getSelection()
|
s = dom_root.getSelection()
|
||||||
clength = textfield.textContent.length
|
clength = textfield.textContent.length
|
||||||
left = Math.min s.anchorOffset, clength
|
range.left = Math.min s.anchorOffset, clength
|
||||||
right = Math.min s.focusOffset, clength
|
range.right = Math.min s.focusOffset, clength
|
||||||
if fix?
|
if fix?
|
||||||
left = fix left
|
range.left = fix range.left
|
||||||
right = fix right
|
range.right = fix range.right
|
||||||
{
|
|
||||||
left: left
|
edited_element = s.focusNode
|
||||||
right: right
|
if edited_element is textfield or edited_element is textfield.childNodes[0]
|
||||||
isReal: true
|
range.isReal = true
|
||||||
}
|
else
|
||||||
|
range.isReal = false
|
||||||
|
range
|
||||||
|
|
||||||
writeRange = (range)->
|
writeRange = (range)->
|
||||||
writeContent word.val()
|
writeContent word.val()
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user