You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止非a标签元素移动端被长按触发「在新标签页打开」操作

方案1:纯CSS实现(最推荐,无侵入)

直接给.button类添加以下样式即可,不会影响正常点击事件触发:

.button {
  /* 禁止长按选中元素内文字 */
  user-select: none;
  /* 禁止移动端长按呼出系统默认菜单(包含新标签页打开、复制等选项) */
  -webkit-touch-callout: none;
}

方案2:JS事件拦截(CSS不生效时备用)

如果部分老旧移动端设备CSS方案不生效,可以给元素添加事件拦截逻辑:

<div
  class="button"
  @click="handleSubmit"
  <!-- 阻止右键/长按呼出上下文菜单 -->
  @contextmenu.prevent
  <!-- 仅拦截长按行为,不影响短按点击 -->
  @touchstart="(e) => {
    clearTimeout(window.touchTimer)
    window.touchTimer = setTimeout(() => {
      e.preventDefault()
    }, 500)
  }"
  @touchend="() => clearTimeout(window.touchTimer)"
>
  Click
</div>

额外排查点

如果修改后仍然出现该问题,可以检查元素外层是否包裹了<a>标签:

  • 若是不必要的a标签直接移除即可
  • 若必须保留a标签,给a标签添加href="javascript:void(0)"避免被浏览器识别为跳转链接。

内容的提问来源于stack exchange,提问作者drake035

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 23:36:02