Почему не работает выделение по клику?
Здравствуйте!
Нужно выделить текстовое содержимое 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, время: 19:32. |