Привет, поэтому я работаю с диапазонами, я пытаюсь ограничить выбор, который пользователь может сделать на странице.Я имею в виду, что пользователь может выбирать все, что он хочет, но выбор не может превышать границы, которые я установлю.
Сначала я определяю "границы" с определенным диапазоном.Затем я сравниваю текущий выбор пользователя с определенным диапазоном, если текущее начало выбора ниже границ ИЛИ текущий конец выбора выше границ, которые я корректирую соответствующим образом, чтобы выбор пользователя никогда не превышал определенный диапазон границ / выбора.
Функция, представленная ниже, работает только в том случае, если я выводю предупреждение до начала процесса, если я удаляю предупреждение, то Firefox ведет себя странно (как при выборе другой части страницы и т.следующий код работает с предупреждением, и почему он не работает должным образом без предупреждения?
Спасибо!
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);
}
}