Эй, поэтому я работаю с диапазонами, я пытаюсь ограничить выбор, который пользователь может сделать на странице. Я имею в виду, что пользователь может выбирать все, что захочет, но выбор не может превышать границы, которые я установил.Странное поведение firefox/javascript с использованием диапазонов
Сначала я определяю «границы» с определенным диапазоном. Затем я сравниваю текущий пользовательский выбор с заданным диапазоном, если текущий запуск выбора находится ниже границ ИЛИ текущий конец выбора выше границ, которые я настраиваю соответственно, чтобы выбор пользователя никогда не превышал определенный диапазон границ/выбор.
Функция ниже работает только если выход I начинается предупреждение перед процессом, если я удалить предупреждение, то светлячок ведет себя странно (как выбрать другую часть страницы и т.д.)
вопрос: почему следующий код работает с предупреждением и почему он не работает так, как ожидалось, без предупреждения?
Спасибо!
var range = document.createRange(); // this is the boundaries range
range.selectNodeContents(document.getElementById("container"));
function test(){
alert("let's go"); // if I remove this alert, the code doesn't work as expected, WHY?!
if(window.getSelection().rangeCount == 0){
return;
}
var curRange = window.getSelection().getRangeAt(0);
if(curRange.compareBoundaryPoints(Range.START_TO_START, range) < 0){
curRange.setStart(range.startContainer,range.startOffset);
}
if(curRange.compareBoundaryPoints(Range.END_TO_END, range) > 0){
curRange.setEnd(range.endContainer,range.endOffset);
}
}
Что вызывает «тест»? – Pointy 2010-11-26 16:47:15
A кнопка на странице – carlosdubusm 2010-11-26 16:48:57