Javascript.RU

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

Почему не работает выделение по клику?
Здравствуйте!

Нужно выделить текстовое содержимое div по клику.
Пример кода приведен вот здесь http://jsfiddle.net/tuf8ven6/3/

У меня работает во всех браузерах.
У моего друга НЕ работает во всех браузерах (три клика нужно).

Что за явление (три клика нужно вместо одного)? Может кто встречал.

Последний раз редактировалось tania_v, 19.09.2018 в 11:38.
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2018, 11:53
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

tania_v,
Тремя кликами выделяется без всякого скрипта
<div id="select-target">This div will be selected</div>
Ответить с цитированием
  #3 (permalink)  
Старый 19.09.2018, 11:56
Интересующийся
Отправить личное сообщение для tania_v Посмотреть профиль Найти все сообщения от tania_v
 
Регистрация: 19.09.2018
Сообщений: 16

Сообщение от Dilettante_Pro Посмотреть сообщение
tania_v,
Тремя кликами выделяется без всякого скрипта
<div id="select-target">This div will be selected</div>
Т.е. вообще тогда не работает тот код. Примечательно, что во всех браузерах. Наверное, надо уточнить операционку и версии (?)
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2018, 11:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

tania_v,
у него браузер наверно Google Chrome
Ответить с цитированием
  #5 (permalink)  
Старый 19.09.2018, 12:02
Интересующийся
Отправить личное сообщение для tania_v Посмотреть профиль Найти все сообщения от tania_v
 
Регистрация: 19.09.2018
Сообщений: 16

Нет, у него разные браузеры.
Ответить с цитированием
  #6 (permalink)  
Старый 19.09.2018, 12:03
Интересующийся
Отправить личное сообщение для tania_v Посмотреть профиль Найти все сообщения от tania_v
 
Регистрация: 19.09.2018
Сообщений: 16

У меня Хром, Опера, Мозилла - везде работает. Правда, я на старых версиях сижу, winxp и браузеры соответствующие; но разве в новом может быть хуже, чем в старом?
Ответить с цитированием
  #7 (permalink)  
Старый 19.09.2018, 12:07
Интересующийся
Отправить личное сообщение для tania_v Посмотреть профиль Найти все сообщения от tania_v
 
Регистрация: 19.09.2018
Сообщений: 16

А вот код ниже работает как у меня, так и у него

https://www.google.com/url?q=https%3...kpTwacZExCN Q
Ответить с цитированием
  #8 (permalink)  
Старый 19.09.2018, 12:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Выделение по одному клику
Сообщение от tania_v
Правда, я на старых версиях
https://www.chromestatus.com/features/6680566019653632
вырезали с Chrome 58
вот такой танец с бубнами предлагают
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">


</head>

<body>
<div id="select-target">This div will be selected</div>
<script>
document.getElementById('select-target').addEventListener('click', function() {
var selection = window.getSelection(),
range = document.createRange();
range.selectNodeContents(this);
selection.removeAllRanges();
selection.addRange(range);
});
  </script>

</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 19.09.2018, 12:10
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

У меня в хроме и ИЕ11 работает такой
<div id="select-target">This div will be selected</div>
<script>  
document.getElementById('select-target').addEventListener('click', function() {
    var r = document.createRange();
    r.selectNode(this);
    var sel = document.getSelection();
    sel.removeAllRanges();
    sel.addRange(r);
}); 
 
</script>

а вот такой не работает
<div id="select-target">This div will be selected</div>
<script>  
document.getElementById('select-target').addEventListener('click', function() {
    var r = document.createRange();
    r.selectNode(this);
    var sel = document.getSelection().removeAllRanges().addRange(r);
}); 
 
</script>

Последний раз редактировалось Dilettante_Pro, 19.09.2018 в 12:15.
Ответить с цитированием
  #10 (permalink)  
Старый 19.09.2018, 12:20
Интересующийся
Отправить личное сообщение для tania_v Посмотреть профиль Найти все сообщения от tania_v
 
Регистрация: 19.09.2018
Сообщений: 16

Спасибо!

В первом коде выше 2 отличия от моего. Первое состоит в selectNodeContents вместо selectNode у меня, с утра я туплю - объясните мне разницу

selectNode() method sets the Range to contain the Node and its contents.
selectNodeContents() sets the Range to contain the contents of a Node
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает событие по клику maxg5 jQuery 11 02.07.2018 22:36
Почему перебор элементов не работает по кругу Sinevik Общие вопросы Javascript 4 27.12.2017 01:41
Почему Jquery не работает в arcticmodal при вызове окна с большой высотой? sergey24 Общие вопросы Javascript 5 21.09.2017 15:49
Почему не работает? Rora Общие вопросы Javascript 7 10.05.2017 10:09
почему один вызов load работает, а другой - нет kravru jQuery 1 16.09.2013 20:51