如何使用 javascript css 或 html attr 禁用 iOS 链接预览

Posted

技术标签:

【中文标题】如何使用 javascript css 或 html attr 禁用 iOS 链接预览【英文标题】:How to disable iOS Link Preview with javascript css or html attr 【发布时间】:2020-07-09 01:12:47 【问题描述】:

当您在带有 ios 的 Chrome / Safari 中按住链接时,它会显示一个烦人的链接预览,当我有一个可排序的 <ul> 列表项时就会出现问题(里面有完整的链接) 因此,如果您按住拖动(拖动事件出现在我的<li> 上,如果您单击/点击,则转到链接<a>

iOS问题:当我在应该开始拖动事件的时候按住,这个烦人的系统模态出现了,阻塞了所有的拖动过程并破坏了用户体验。

我已经尝试阻止默认操作,当拖动开始时,指针事件没有元素内的链接,但是什么都没有,一直出现

element.sortable.on('drag:start', (e) => 
      e.stopPropagation();
      e.preventDefault();

任何想法如何解决这个问题(js、css 或一些 html attr ?)在此先感谢

【问题讨论】:

嗨,你解决了吗?我正在网上搜索相同的问题 你好@davideghz,不。我只是为 iOS 做了一个小的布局修改,让所有区域都可以在没有链接的情况下排序,然后是外部的 链接按钮。我讨厌这种异常但找不到解决方案???? 【参考方案1】:

这种 css 样式会阻止您在 iOS safari 上引用的触摸动作。在提问时,我相信默认弹出窗口是图片中显示的那个。但现在它在一个小的模态窗口中导航到实际页面,除了显示一些选项

a 
  -webkit-touch-callout: none;

在 iOS 上导航到此进行测试:https://jsfiddle.net/hygf4Lrk/3/

它同时阻止长按(点击并按住可能 1 秒)和强制触摸(用力但立即按下),默认情况下会导致相同的链接预览操作。

【讨论】:

谢谢,这将有助于解决这种烦人的行为是的,该弹出窗口在某些当前版本中已更改。

以上是关于如何使用 javascript css 或 html attr 禁用 iOS 链接预览的主要内容,如果未能解决你的问题,请参考以下文章

缩放 css/javascript

如何使用内联 JavaScript 或 CSS 隐藏 TD 标签?

如何使用 Javascript 或 CSS 在 DIV 上应用媒体查询 [重复]

当您使用 Javascript 单击或停止悬停时,如何使 CSS 悬停内容保持原位?

如何使用 css 和/或 javascript 动态更改样式

如何使用 css 或 javascript 将 ASP 下拉列表设置为只读?