2016-02-08 2 views
2

Я был озадачен тем, почему такое поведение происходит на сафари. Я пытаюсь получить выбор, когда я печатаю текст, и для этого я использую window.getSelection(), и он отлично работает на Firefox, Chrome, Opera и так далее дает мне что-то вроде:safari getSelection() не работает

Selection {} 
anchorNode: text 
anchorOffset: 14 
baseNode: text 
baseOffset: 14 
extentNode: text 
extentOffset: 14 
focusNode: text 
focusOffset: 14 
isCollapsed: true 
rangeCount: 1 
type: "Caret" 
__proto__: Selection 

Однако на safari9, когда я сделать то же самое, то результат будет таким:

Selection 
anchorNode: null 
anchorOffset: 0 
baseNode: null 
baseOffset: 0 
extentNode: null 
extentOffset: 0 
focusNode: null 
focusOffset: 0 
isCollapsed: true 
rangeCount: 0 
type: "None" 
__proto__: SelectionPrototype 

мне интересно, если это что-то я делаю не так? Если это действительно ошибка, или она не работает, есть ли возможное решение? Или другой метод получения той же информации, которая будет работать в большинстве браузеров?

ответ

1

Я сталкиваюсь с аналогичной проблемой, когда имею дело с контент-доступным div и кажется, что по умолчанию для сафари user select - none, что делает его так, что пользователь не может выбрать что-либо. Я сделал

[contenteditable] { 
    -webkit-user-select: auto; 
    user-select: all; 
} 

Вы можете попробовать заменить [contenteditble] на input или другие элементы CSS.

Смежные вопросы