【问题标题】:How to clear text selection in Mobile Safari with JavaScript?如何使用 JavaScript 清除 Mobile Safari 中的文本选择?
【发布时间】:2018-01-30 10:28:18
【问题描述】:

有没有办法以编程方式清除 Mobile Safari 中的选择框?我尝试了 @987654324 @,如另一个堆栈溢出问题的答案所建议的, @987654321 @,虽然选择对象已重置为无选择(键入none none none none”,isCollapsed是 @987654325 @,Rangecount @,Rangecount,Rangecount,Rangecount是0, @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ 987654326@/focusNode/baseNode/extentNodenull),选择框保留在屏幕上:

我也试过window.getSelection().collapse(),但没用。

我正在运行 iOS 7.1.1 的 iPad 上测试 iOS 7.1 Simulator 和 Mobile Safari。

【问题讨论】:

  • 你有没有为 dis.我非常需要它。请帮助使用 javascript/jquery 删除 ipad 中的选择突出显示
  • @Khaleel:不,抱歉。虽然我确实发现这个问题至少已经向 Apple 报告了两次。见:openradar.me/8707236
  • :(谢谢老兄的回复

标签: javascript mobile-safari selection


【解决方案1】:

这是自 2010 年以来 Mobile Safari 中的一个已知错误! http://www.openradar.me/8707236

现在是 2018 年,这仍然是一个错误。 (iOS 10.2.2)

在不需要它的区域,删除 event.preventDefault() 会有所帮助。

【讨论】:

    【解决方案2】:

    我遇到了完全相同的问题,就我而言,重要的是删除

    event.preventDefault();
    

    来自“取消选择”点击事件的处理程序。

    【讨论】:

      【解决方案3】:

      一种可能性是快速添加和删除父元素的user-select CSS 类,以禁用和启用用户选择。

      例如,

      parent = getSelection().anchorNode.parentNode
      parent.style.userSelect = "none"
      setTimeout(()=>parent.style.userSelect = <default>, 100)
      

      【讨论】:

      • 这对你有用吗?我刚刚在 iOS 11.1 Simulator 中尝试过,它并没有在视觉上或通过 window.getSelection() 清除选择。此外,在 Mobile Safari 中,用户选择似乎需要 -webkit 前缀。
      • 第一次选择+取消选择不起作用,但之后每次都起作用。奇怪的行为,但我对 Apple 的期望并不高。
      猜你喜欢
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 2014-06-10
      相关资源
      最近更新 更多