Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Можно ли как то выделить текст в блоке при клике по блоку? (https://javascript.ru/forum/dom-window/22195-mozhno-li-kak-vydelit-tekst-v-bloke-pri-klike-po-bloku.html)

someLogin 10.10.2011 00:14

Можно ли как то выделить текст в блоке при клике по блоку?
 
Можно ли как то выделить текст в блоке при клике по блоку?

Есть div, пользователь щелкнает левой кнопкой мыши в пределах этого div'а и имеющийся в нем текст выделяется. Знаю что с текстовым полем такое возможно.

smallredstone 10.10.2011 05:10

Можно, я аж сам удивился
 
Есть объекты Selection (выделение) и Range (промежуток).
Можно получить выделение и вставлять в него промежутки.
Видны только промежутки, вставленные в выделение.

$(document).ready(function () {
  $('.selectable').click(function () {
    var w = window.getSelection();
   // w.removeAllRanges();  // вроде бы старые промежутки удаляются автоматически при каждом клике
    var range = document.createRange();
    range.selectNode(this);
    w.addRange(range);
  });
});
// selectable - класс тех div-элементов, которые будут выделяться целиком при клике на них


Я не знаю, насколько это кроссбраузерно, но там где-то были ссылки на DOM2


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