Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2016, 11:34
Новичок на форуме
Отправить личное сообщение для Ezhuroff Посмотреть профиль Найти все сообщения от Ezhuroff
 
Регистрация: 29.07.2016
Сообщений: 5

Выделение текста
Привет!)
Подскажите, пожалуйста, как можно реализовать выделение текста? Например, при нажатии на кнопку share, появляется pop-up окно, в котором находится ссылка. Как сделать такое окно я знаю, а как сделать так, чтобы эта ссылка появлялась уже выделенной?
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2016, 15:04
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Вам нужно именно выделить текст, или таки поставить фокус на ссылку?
Если второе, то element.focus().
Если первое, то для современных браузеров понадобится Selection, для ie<9 TextRange.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2016, 17:53
Новичок на форуме
Отправить личное сообщение для Ezhuroff Посмотреть профиль Найти все сообщения от Ezhuroff
 
Регистрация: 29.07.2016
Сообщений: 5

Хм, вот тут вы меня озадачили))
Вообще, строго говоря, надо реализовать копирование ссылки. Пользователь жмет на кнопку share, при этом происходит копирование ссылки в буфер обмена, появляется popup-окно, в котором написана эта самая ссылка и она выделена - просто так же, как выделяется обычный текст в текстовом документе или в браузере. То, что появляется popup-окно с выделенной ссылкой - это, в принципе, не функциональная, а чисто интерфейсная заморочка. Главное, чтобы ссылка копировалась.
Пробовал разобраться с selection, но как-то, видимо, недопонимаю я этот объект, что-то не хочет работать. Но это ладно, пораскину мозгами еще.
Вообще я же правильно понимаю, для того, что я описал - нужен именно selection? element.focus() Здесь вроде ведь не нужен?
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2016, 19:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Сообщение от Ezhuroff Посмотреть сообщение
Вообще я же правильно понимаю, для того, что я описал - нужен именно selection? element.focus()
Да. Примерно так:
<input type="button" value="copy" onclick="openCopyWindow('http://ya.ru')">
<script>
function openCopyWindow(link){
  var document = window.open('', '', 'width=600,height=100').document;
  document.write('<p align="center">', link); 
  document.close();
  if('getSelection' in document) document.getSelection().selectAllChildren(document.body);
  else document.body.createTextRange().select();
}
</script>
Только, имхо, расточительно открывать новое окно ради этого, лучше выделять прямо на странице.
Ну и само собой использовать сразу копирование в буффер, там где это поддерживается.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 03.11.2016, 18:46
Новичок на форуме
Отправить личное сообщение для Ezhuroff Посмотреть профиль Найти все сообщения от Ezhuroff
 
Регистрация: 29.07.2016
Сообщений: 5

Всем спасибо за ответы и ссылки, попробую реализовать!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отменить в выделение текста в таблице при кликах и вообще двойные клики отменить monkey_gelada Events/DOM/Window 1 21.08.2015 08:28
Выделение текста и замена его lazigi Javascript под браузер 2 19.01.2015 09:53
Выделение текста при клике на элемент Alex351960 Events/DOM/Window 1 30.12.2014 00:37
Textarea и выделение текста dima85 Общие вопросы Javascript 2 29.09.2014 13:48
Выделение текста в текстовом поле. Как снять выделение с пробела вконце? Roman Koff Events/DOM/Window 10 01.07.2010 16:48