Почему не работает выделение по клику?
Здравствуйте!
Нужно выделить текстовое содержимое div по клику. Пример кода приведен вот здесь http://jsfiddle.net/tuf8ven6/3/ У меня работает во всех браузерах. У моего друга НЕ работает во всех браузерах (три клика нужно). Что за явление (три клика нужно вместо одного)? Может кто встречал. |
tania_v,
Тремя кликами выделяется без всякого скрипта <div id="select-target">This div will be selected</div> |
Цитата:
|
tania_v,
у него браузер наверно Google Chrome |
Нет, у него разные браузеры.
|
У меня Хром, Опера, Мозилла - везде работает. Правда, я на старых версиях сижу, winxp и браузеры соответствующие; но разве в новом может быть хуже, чем в старом?
|
А вот код ниже работает как у меня, так и у него
https://www.google.com/url?q=https%3...kpTwacZExCN Q |
Выделение по одному клику
Цитата:
вырезали с 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> |
У меня в хроме и ИЕ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> |
Спасибо!
В первом коде выше 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 |
Часовой пояс GMT +3, время: 17:27. |