В настоящее время у меня проблема с выделением текста в IE 11 (хотя это случается и в предыдущих IE). Моя цель - заставить работать выделение текста, при котором он возвращает мне getClientRects. У меня простая установка. У меня есть контейнерный div, и внутри него я разместил два промежутка:
<div onmouseup="mouseup()" id="container">
<div class="span1">Span 1</div>
<div class="span2">Span 2</div>
</div>
Оба пролета расположены абсолютно в верхнем / левом и нижнем / правом углах. Контейнер имеет высоту 100 пикселей;
При наведении мыши запускается эта функция:
function mouseup(){
var selectObj = ((window.getSelection)?window.getSelection():document.getSelection());
alert(selectObj.getRangeAt(0).getClientRects().length);
}
В Chrome, если вы попытаетесь выделить текст от диапазона 1 до диапазона 2, он выдаст предупреждение о длине 3, что я хочу, поскольку это позволяет мне узнать, где находятся ограничивающие рамки для выделения текста. В Internet Explorer он всегда возвращает 0. Если я выберу текст только в пределах одного диапазона, он будет работать, но как только вы перейдете к нескольким, он не сработает.
Вот jsFiddle всего этого настроенного: http://jsfiddle.net/v6sa71hs/