在触摸屏上禁用Chrome文本输入框中的粘贴菜单

8
如何在触摸屏上禁用Chrome中的右键菜单。当我选择或长按任何输入时,此菜单会弹出,而我已经复制了一些文本。

enter image description here

我正在使用CEFSharp(Chromium嵌入式框架)开发一个应用程序,并将其部署在Windows 8触摸屏上。我正在使用一个屏幕键盘(http://mottie.github.io/Keyboard/)来输入输入字段中的文本。

我已经尝试过

            $('input').bind('copy paste contextmenu', function (e) {
                e.preventDefault();
                e.stopPropagation();
            });

这会禁用粘贴,但菜单仍然显示。如何摆脱这个菜单?最好的方法是通过CSS、Javascript或Chrome命令行参数(http://peter.sh/experiments/chromium-command-line-switches/)来处理。
1个回答

1
我知道你说了JS/CSS,但这对我有效:

var browser = new ChromiumWebBrowser("http://www.afrobotics.co.za")
{
  Dock = DockStyle.Fill,
  DragHandler = new DragHandler(),
  MenuHandler = new ContextHandler()
};

// 
public class ContextHandler : IMenuHandler
{
    public bool OnBeforeContextMenu(IWebBrowser browser, IContextMenuParams parameters)
    {
        return false;
    }
}

public class DragHandler : IDragHandler
{
    public bool OnDragEnter(IWebBrowser browser, IDragData dragData, DragOperationsMask mask)
    {
        return true;
    }
}


这个有用吗?对我来说好像不起作用(尽管我已经升级到cefsharp 43.0.0.0)。在这个新版本中,OnBeforeContextMenu的IMenuHandler签名与以前不同。你不能返回false。 - user1830285
请使用 model.Clear(); 替代在 43.0.0 中返回 false - amaitland
我已经在做这件事了,我成功地压制了右键上下文菜单,但这个复制和粘贴叠加仍然显示。 - user1830285
这个问题解决了吗?我也遇到了同样的问题。 - paul-2011
我也在寻找解决方案,有什么消息吗? - Lorenzo Sciuto
尝试使用命令行开关 --disable-javascript-dom-paste。但要小心,不幸的是,--use-views 似乎会覆盖它。 - sancelot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接