Запретить выделение.
Привет.
Какой то текст <span class="test">фффф</span> какой то текст. Если так
var test = document.querySelectorAll('.test');
$(test).on('mousedown selectstart', function () {
return false;
});
то выделение не работает, если начинаешь выделять со span. Но если начать выделять с другого места справа или слево, то выделение происходит. Написал так.
let txt = window.getSelection().toString();
var a = [];
for(var i=0;i<test.length; i++){
a = $(test)[i].innerText;
if(txt.includes(a))return false;
}
Вроде теперь работает. Не выделяет. Но при условии, что в выделение попадает весь текст в span. Но если вместе с новым словом захватывается только часть текста в span, то выделение срабатывает. И это логично. Как можно это решить? |
Вроде решил.
При выделении, выделенная строка оборачивается в span и прописывается класс. Поэтому сделал так
const child = $(span.childNodes);
for (key in child) {
var sub = child[key];
var cls = sub.className;
if(cls === undefined)continue;
if (cls == 'no-moder') { return false; }
}
Но как то это не по феншую,имхо) |
|
Alexandroppolus, спасибо. Это может сработать).
|
| Часовой пояс GMT +3, время: 14:05. |