【问题标题】:prevent windows 8 right click square防止Windows 8右键单击正方形
【发布时间】:2013-07-23 03:41:03
【问题描述】:

我有一个网站(不是 Windows 8 应用程序),它希望用户能够在使用触摸时将手指按住某个图标几秒钟。但是,这会导致“右键单击方块”出现在 Windows 8 中。它不会阻止页面正常工作,但会很烦人并且可能会使用户感到困惑。有什么办法可以防止广场上来吗?我知道在 IE 中可能有一些非常简单、合乎逻辑的方式来执行此操作(因为微软似乎使它对触摸非常友好),但我也针对 chrome、firefox 和 opera,因为它们支持触摸事件和Windows 8 触摸屏计算机上的东西。我已经尝试取消 contextmenu 事件,这只会阻止菜单出现。

【问题讨论】:

    标签: javascript html windows-8 touch right-click


    【解决方案1】:

    IE10 有事件MSHoldVisual 来打开广场。您可以取消MSHoldVisualcontextmenu 以停止此行为。

    // Disables visual
    element.addEventListener("MSHoldVisual", function(e) { e.preventDefault(); }, false);
    // Disables menu
    element.addEventListener("contextmenu", function(e) { e.preventDefault(); }, false);
    

    根据这个 MSDN 页面:http://msdn.microsoft.com/en-us/library/ie/hh673557(v=vs.85).aspx#context_menus

    【讨论】:

    • 谢谢,但是,正如我对其他答案所说,我想知道这在其他浏览器中是否可行。 +1,但不接受。
    • 是的,我也想知道,可惜我只有 SurfaceRT,无法使用其他浏览器进行测试...
    • 由于其他浏览器似乎完全忽略了这个问题,我会接受这个答案。抱歉回复晚了!
    【解决方案2】:

    查看 Marcin 在以下项目中提到的更新是否适合您。我将其发布为答案,因为我无法添加评论:)

    来源:Disable tooltips for links

    代码:

    document.addEventListener("MSHoldVisual", 
                               function(e) { 
                                   e.preventDefault(); 
                               }, false);
    

    【讨论】:

    • 谢谢,这很有帮助,但它只会在用户使用 IE 时阻止正方形。我需要我的应用程序支持 IE,所以这很有帮助,但我不会接受它,因为我也想知道如何在其他浏览器中执行此操作。
    • 您是否尝试阻止与ontouchstart 关联的默认操作?我在某处读到过这个,但不确定它是否能解决你的问题。
    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2021-09-10
    • 2021-08-01
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多