window.getSelection в диалоговом окне пользовательского интерфейса jquery не возвращает выделение в Safari - PullRequest
1 голос
/ 03 мая 2011

Я использую диалоговое окно jquery UI (http://jqueryui.com/demos/dialog/) для отображения фрагмента текста. Я хочу выделить текст в этом диалоговом окне и манипулировать им. Теперь мой текущий код работает на Chrome и Firefox, но не работает на Safari. (Еще не проверено на IE)

Я получаю выделение и отображаю его следующим образом:

selection = window.getSelection(); 
alert(selection.toString().length);

Предупреждение возвращает ноль в Safari. Я относительно новичок в javascript / jquery, поэтому любые указатели помогут! Спасибо!

Ответ: Для всех, кто видел это ... когда я использовал событие "mousedown" вместо "click" в диалоговом окне на сафари, оно начало работать Спасибо всем!

Ответы [ 2 ]

0 голосов
/ 03 мая 2011

Если вы делаете что-то с выборами, я бы настоятельно рекомендовал бы вам взглянуть на библиотеку Тима Дауна rangy . Этот парень - гуру объектов Range / Selection. Его библиотека выполняет всю мельчайшую работу по реализации кросс-браузерной библиотеки выбора диапазона. Документация хорошая, он активно работает над проектом (версия 1.1 вышла несколько дней назад).

(редактировать: я НЕ связан с проектом. Я просто использую его и люблю его!)

0 голосов
/ 03 мая 2011

Похоже, Safari работает немного по-другому.GetSelection () не возвращает нормальный строковый объект, поэтому не все строковые методы работают с возвращаемым объектом.Эта ссылка работает как http://joemaller.com/503/getselection-workaround/

Похоже, что это очень старая "ошибка", так что, возможно, лучше посоветовать, что делать вместо этого.

...