长按禁用 iPad / Safari 上下文菜单

Posted

技术标签:

【中文标题】长按禁用 iPad / Safari 上下文菜单【英文标题】:Disable iPad / Safari context menu on long click 【发布时间】:2014-12-10 18:15:28 【问题描述】:

我想禁用使用 iPad 按住链接时显示的“打开/在新选项卡中打开/添加到阅读列表/复制”上下文菜单。下面的代码禁用 PC 或 MacBook 上运行的浏览器中的上下文菜单。但是,在 iPad 上,上下文菜单会继续显示。

这是我正在使用的测试网页。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test Page</title>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script type="text/javascript">     
    $(document).ready(function()                   
        $("a").contextmenu(function(event) 
                event.preventDefault();
        );     

    );
</script>
<style>
body 
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
 
</style>
</head>
<body>
    <a href=#>Test Link</a>
</body>
</html>

【问题讨论】:

【参考方案1】:

body -webkit-touch-callout: none;

应该这样做

【讨论】:

史蒂夫,感谢您的回答。我在上面代码的 html 标记中有这个。我在body标签中尝试过,但没有帮助。还有其他想法吗? 这似乎是 ios 8 测试版 webkit 中的一个错误,不知道为什么它仍然无法正常工作:[link]bugs.webkit.org/show_bug.cgi?id=136685

以上是关于长按禁用 iPad / Safari 上下文菜单的主要内容,如果未能解决你的问题,请参考以下文章

在特定元素上禁用移动长按上下文菜单

解决ios长按图片出现阴影问题

在不禁用上下文菜单的情况下管理 UITextfiled 上的长按?

如何在 Chrome 的信息亭模式下禁用右键单击/长按的上下文菜单?

上传图像文件时如何禁用捕获(在 ipad 上使用 safari)

android 长按事件 和 长按弹出上下文菜单如何处理