Как можно определить/управлять выбором текстовой области в Safari из JavaScript?

У меня есть код JavaScript, который делает две вещи:

  • извлекает выделенный текст из текстовой области
  • добавляет префикс и суффикс к выделенному тексту

В настоящее время код использует свойства selectionStart и selectionEnd текстовой области, чтобы определить, где начинается/заканчивается выделение, извлекает текст выделения и обрабатывает его, а затем перезаписывает значение текстовой области с префиксом и суффиксом, вставленными в нужные места. .

Эта реализация отлично работает в Firefox, но не работает в Safari. По-видимому, свойства selectionStart и selectionEnd не существуют в WebKit. (Я подозреваю, что код также не работает в Google Chrome, который также основан на WebKit, хотя я не проверял это.)

Как я могу выполнить эти две операции в Safari?


person Laurence Gonsalves    schedule 27.05.2009    source источник
comment
Я использую его в Chrome, и он отлично работает.   -  person Martyn    schedule 20.06.2012


Ответы (2)


Я полагаю, вы ищете https://developer.mozilla.org/En/DOM:Selection

также работает в Safari (я не проверял) (см.: http://lists.apple.com/archives/Web-dev/2005/Nov/msg00114.html

person Jonathan Fingland    schedule 27.05.2009
comment
Честно говоря, я надеялся на что-то более откровенное. например: как именно заменить выделенный текст? Обратите также внимание, что я хочу сделать это только в том случае, если выделенный текст находится в текстовой области. Если выбран случайный текст на странице, я бы хотел вместо этого дать пользователю сообщение об ошибке. - person Laurence Gonsalves; 29.05.2009

См. goog.dom.selection в разделе «Закрытие».

person Ben McCann    schedule 20.12.2009