Javascript document.getSelection () не работает на устройствах iOS - PullRequest
1 голос
/ 19 января 2012

Я создавал приложение javascript для устройств iOS, которое должно иметь возможность получать слово непосредственно под событием касания, чтобы его можно было определить.Используя следующий код js:

var s = e.browserEvent.currentTarget.getSelection();
s.modify('extend','backward','word');        
var b = s.toString();           
s.modify('extend','forward','word');
var a = s.toString();
s.modify('move','forward','character');
alert(b + a);

, он работает в браузерах (chrome и safari), но при работе на устройствах, таких как ipad, getSelection ничего не возвращает.У кого-нибудь есть идеи, как заставить это работать?

Приветствия заранее!

Ответы [ 2 ]

1 голос
/ 24 сентября 2018

У меня была эта проблема только на iOS 12 (она нормально работала на iOS 11, 10, 9)

Я нашел чистое решение: посмотрите на это: https://github.com/megahertz/jquery.get-word-by-event

использует объект click EVENT (чище, чем window.getSelection , я думаю):

var range = document.caretRangeFromPoint(event.clientX, event.clientY);

И он прекрасно работает на iOS 12.

1 голос
/ 02 апреля 2018

Для тех, кто найдет этот вопрос в будущем. Убедитесь, что элемент, для которого вы пытаетесь вызвать getSelection (), имеет в своем css следующее:

user-select: text;
-webkit-user-select: text;

Эта проблема часто возникает с редактируемыми элементами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...