【发布时间】:2021-03-06 19:17:16
【问题描述】:
我有一个使用 HTML canvas 的 Web 应用程序,它通过使用 JavaScript 鼠标和触摸事件进行交互。最近,如果用户长按画布,iOS Safari 已经开始在画布上放置文本高亮标注。由于画布旨在在 iOS 设备上进行交互,因此出现的这种标注会破坏用户体验。
即使浏览器确实支持画布,高亮显示在画布的后备文本(画布元素的内容)上,所以文本不应该出现。文本不可见,但从标注中复制会将画布后备文本添加到剪贴板,确认这是浏览器正在选择的内容。但是,从画布元素中删除文本并不会阻止标注的出现;它只是突出显示并允许复制空字符串。
尽管我在画布上使用了这些 CSS 属性,但问题仍然存在:
-webkit-touch-callout: none;
-webkit-tap-highlight-color: transparent;
-moz-user-select: -moz-none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
问题演示:https://codepen.io/KingDragonhoff/pen/vYKoajK
出现的标注图片:https://imgur.com/a/dCm6uPC
如何阻止 iOS Safari 在画布元素上显示高亮标注?
【问题讨论】:
标签: css safari html5-canvas