对于一个网站,我想在用户"长按"屏幕时显示自定义上下文菜单.我在代码中创建了一个jQuery Longclick监听器来显示自定义上下文菜单.将显示上下文菜单,但也会显示iPad的默认上下文菜单!我试图通过preventDefault()在我的监听器中添加一个事件来防止这种情况,但这不起作用:
function showContextMenu(e){
e.preventDefault();
// code to show custom context menu
}
$("#myId").click(500, showContextMenu);
Run Code Online (Sandbox Code Playgroud)
问题
Longclick插件具有针对iPad的一些特定处理(假设通过它的源代码片段):
if (!(/iphone|ipad|ipod/i).test(navigator.userAgent)){
$(this)
.bind(_mousedown_, schedule)
.bind([_mousemove_, _mouseup_, _mouseout_, _contextmenu_].join(' '), annul)
.bind(_click_, click)
}
Run Code Online (Sandbox Code Playgroud)
所以我假设这回答了我的第二个问题(假设插件使用了正确的事件).
我正在尝试使用JavaScript开发打字速度竞赛.人们应该把他们从div看到的所有单词写成textarea.
为了防止作弊(比如从div复制单词),一种方法是只在键盘按键关闭时检查写入的单词,但我想知道是否有办法阻止用户在浏览器中复制文本?
到目前为止我尝试了什么:
使用任何库都可以.
我想隐藏当用户选择任何文本时显示的 Chrome for Android 文本选择弹出窗口,这样默认文本选项弹出窗口(附加屏幕截图)就不会出现。
无论如何使用javascript这样做,而不删除整个文本选择功能?
在Web应用程序中,我需要禁用移动浏览器在触摸目标(例如<img>或链接)上触摸并按住("长按")时显示的默认标注.
我已经在使用-webkit-touch-callout: noneiPhone和iPad了.我试过-ms-touch-action:none和touch-action:noneIE,但这似乎不起作用(在IE11,Windows Phone 8上测试).
来自W3邮件列表的这篇文章建议在Javascript和调用中为"contextmenu"事件添加一个监听器e.preventDefault().这似乎也不起作用.
有什么建议?
有没有替代-webkit-touch-callout,它适用于基于Android的手机.我正在尝试禁用移动设备中的长触摸弹出窗口.我试图绑定jQuerys taphold事件以返回false; 但没有运气......任何想法?谢谢!