Safari getSelection() 不起作用
safari getSelection() not working
我一直很困惑为什么这种行为发生在野生动物园上。当我键入一些文本时,我正在尝试获得选择,为此我使用 window.getSelection(),它在 Firefox、Chrome、Opera 等上工作得很好,给我这样的东西:
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
我想知道这是否是我做错了什么?如果它确实是一个错误或它不起作用,是否有可能的解决方法?还是另一种获取适用于大多数浏览器的相同信息的方法?
当我处理可内容编辑的div 时,我遇到了类似的问题,并且似乎 safari 默认user select
none
这使得用户无法选择任何内容。我做了
[contenteditable] {
-webkit-user-select: auto;
user-select: all;
}
您可以尝试将[contenteditble]
替换为input
或其他 css 元素。
更新
我找到了一个干净的解决方案:看看这个:https://github.com/megahertz/jquery.get-word-by-event
它使用click EVENT对象(我认为比window.getSelection更干净):
var range = document.caretRangeFromPoint(event.clientX, event.clientY);
它在 iOS 12 上运行良好。
旧帖子
我仅在iOS12上遇到了同样的问题(no mater -webkit-user-select)
我设法通过添加:contentEditable="true"来使其再次工作到 Div 容器,
但是(大但是)不幸的是键盘出现并且内容变得可编辑!(这是意料之中的...
我仍在寻找解决方法@galart 你发现了什么吗?
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 我的javascript for循环不起作用
- Meteor-添加用户自定义字段的方法不起作用
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- Textarea必需的attribut在javascript中不起作用
- 为什么javascript:void(0)在Firefox中不起作用
- 退出全屏不起作用