Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   javascript Убрать выделение с текста (https://javascript.ru/forum/misc/13568-javascript-ubrat-vydelenie-s-teksta.html)

shureg 04.12.2010 11:09

javascript Убрать выделение с текста
 
Добрый день, подскажите мне фукции для снятия выделения с текста:

например:

<textarea onMouseOver="this.select();" onMouseOut="Какая функция???">какойлибо текст</textarea>


тоесть как вдино из примера - если навести курсор на елемент textarea - то текст который там - выбедился, все отлично рбаотает, но как мне теперь с выделннного текста наоборот снять выделение? =))))) первое что пришлосло на ум unselet() =)))))) не не работает :((((( прошу помощи!:help:

monolithed 04.12.2010 11:51

<script type="text/javascript">
window.onload = function(){
    var textarea = document.getElementsByTagName('textarea')[0];
    textarea.onmouseover = function(){
        this.select();
    };
    textarea.onmouseout = function(){
        this.value +=' ';
        this.value = this.value.slice(0, -1);
    };
};
</script>

<textarea>какой-либо текст</textarea>

shureg 04.12.2010 11:57

Цитата:

Сообщение от monolithed (Сообщение 82221)
<script type="text/javascript">
window.onload = function(){
    var textarea = document.getElementsByTagName('textarea')[0];
    textarea.onmouseover = function(){
        this.select();
    };
    textarea.onmouseout = function(){
        this.value +=' ';
        this.value = this.value.slice(0, -1);
    };
};
</script>

<textarea>какой-либо текст</textarea>

спасибо! можно было бы просто :

<textarea onMouseOver="this.select();" onMouseOut="this.value +=' '; this.value = this.value.slice(0, -1);">какойлибо текст</textarea>

тоже все работает и намного меньше код =)

monolithed 04.12.2010 12:06

Цитата:

Сообщение от shureg
спасибо! можно было бы просто :

Я стараюсь всегда отделять логику от представления и вам советую.

PS:
Цитата:

Сообщение от shureg
onMouseOver / onMouseOut

Не будет работать с XML типом документа!

klimashkin 06.12.2010 10:51

Как вариант снимать выделение с текста таким кодом. (Вдвойне полезно если на тексте висит обработчик двойного клика).

function clearSelection() {
    if(document.selection && document.selection.empty) {
        document.selection.empty();
    } else if(window.getSelection) {
        var sel = window.getSelection();
        sel.removeAllRanges();
    }
}

monolithed 06.12.2010 11:28

klimashkin этот способ хорош при использовании dnd, но в конкретном случае он снимет выделение во всем документе, не только в поле ввода

klimashkin 06.12.2010 11:59

Верно, но разве может быть в одном документе больше одного выделения?

monolithed 06.12.2010 12:14

Думаю если задаться целью к.л. способом это сделать то возможно.
К примеру при работе с объектом Range можно так сделать, но там получится не совсем такое выделение, скорее заливка)).


Часовой пояс GMT +3, время: 11:23.