powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Отменить слетание выделения текста после выполнения функции
3 сообщений из 3, страница 1 из 1
Отменить слетание выделения текста после выполнения функции
    #39262585
eddin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть скрипт, который добавляет ссылку при копировании.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
function addLink() {

    var selection = window.getSelection(),
        pagelink = '

 Read more at: ' + document.location.href,
        copytext = selection + pagelink,
        newdiv = document.createElement('div');

    newdiv.style.position = 'absolute';
    newdiv.style.left = '-99999px';

    document.body.appendChild(newdiv);
    newdiv.innerHTML = copytext;
    selection.selectAllChildren(newdiv);

    window.setTimeout(function () {
        document.body.removeChild(newdiv);
    }, 100);
}

document.addEventListener('copy', addLink);


Но после того, как копирование произошло, в браузере слетает выделение ранее выделенного текста. Как я понимаю, это происходит из-за "selectAllChildren". Можно как-то этого избежать, чтобы выделение не слетало?
Заранее спасибо!
...
Рейтинг: 0 / 0
Отменить слетание выделения текста после выполнения функции
    #39262837
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eddin,

может так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
  newdiv.innerHTML = copytext;
  //selection.selectAllChildren(newdiv);
  var rng = document.createRange();
  rng.selectNode(newdiv);
  sel = window.getSelection();
  sel.removeAllRanges();
  sel.addRange( rng );
...
Рейтинг: 0 / 0
Отменить слетание выделения текста после выполнения функции
    #39262840
OldBoyOdeSu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правда не понял для чего
window.setTimeout(function () {
document.body.removeChild(newdiv);
}, 100);

в общем выделение основано на диапазоне, смотреть в сторону Range, там можно границы задавать какие надо
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Отменить слетание выделения текста после выполнения функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]