2016-02-08 2 views
2

J'ai été étonné de savoir pourquoi ce comportement se produit lors d'un safari. Je suis en train de faire la sélection quand je tape un texte et que j'utiliser le window.getSelection() et il fonctionne parfaitement bien sur Firefox, Chrome, Opera et ainsi me donner quelque chose comme:safari getSelection() ne fonctionne pas

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 

Cependant sur safari9 quand je fais exactement la même chose, le résultat sera ceci:

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 

Je me demande si cela est quelque chose que je fais mal? Si c'est effectivement un bug ou que ça ne fonctionne pas, y a-t-il une solution possible? Ou une autre méthode pour obtenir la même information qui fonctionnera sur la plupart des navigateurs?

Répondre

1

Je suis confronté à un problème similaire lorsque j'ai affaire à un div contented et semble safari par défaut user select à none ce qui fait que l'utilisateur ne peut rien sélectionner. Je l'ai fait

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

Vous pouvez remplacer [contenteditble]-input ou d'autres éléments css.