I hate Internet Explorer
This commit is contained in:
@@ -510,12 +510,38 @@
|
||||
start = el.selectionStart;
|
||||
end = el.selectionEnd;
|
||||
} else {
|
||||
var range = document.selection.createRange();
|
||||
var range = document.selection.createRange();
|
||||
var stored_range = range.duplicate();
|
||||
stored_range.moveToElementText( el );
|
||||
stored_range.setEndPoint( 'EndToEnd', range );
|
||||
start = stored_range.text.length - range.text.length;
|
||||
stored_range.moveToElementText( el );
|
||||
stored_range.setEndPoint( 'EndToEnd', range );
|
||||
start = stored_range.text.length - range.text.length;
|
||||
end = start + range.text.length;
|
||||
|
||||
// so, uh, we're close, but we need to search for line breaks and
|
||||
// adjust the start/end points accordingly since IE counts them as
|
||||
// 2 characters in TextRange.
|
||||
var s = start;
|
||||
var lb = 0;
|
||||
debug('IE: start position is currently ' + s);
|
||||
for ( var i=0; i < s; i++ )
|
||||
if ( el.value.charAt(i).match(/\r/) )
|
||||
++lb;
|
||||
|
||||
if ( lb ) {
|
||||
debug('IE start: compensating for ' + lb + ' line breaks');
|
||||
start = start - lb;
|
||||
lb = 0;
|
||||
}
|
||||
|
||||
var e = end;
|
||||
for ( var i=0; i < e; i++ )
|
||||
if ( el.value.charAt(i).match(/\r/) )
|
||||
++lb;
|
||||
|
||||
if ( lb ) {
|
||||
debug('IE end: compensating for ' + lb + ' line breaks');
|
||||
end = end - lb;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user