如何在安卓上的腾讯/ X5 /微信浏览器中禁用上下文菜单



我有一个网络应用程序,它有一些交互,用户需要长按/按住屏幕才能继续前进,这一切都可以正常工作,但是在中国的微信上,以及像腾讯 (X5( 这样的类似浏览器/网络视图,按住屏幕时会出现一个上下文菜单。

我尝试了以下代码(以及事件中的所有变体(:

// Long press, then the following code executes
document.addEventListener('contextmenu', (e) => {
alert('Right click');
e.preventDefault();
e.stopPropagation();
return false;    
});
// As soon as the alert is dismissed, the context menu still appears

警报会在应用程序的上下文菜单之前立即弹出,但我仍然无法阻止它发生。

这里的任何帮助将不胜感激。我知道中国的Android微信有一个原生的Javascript桥,其他怪癖可以用自定义属性等禁用,我只是无法解决这个问题。

这可以很容易地使用 https://play.google.com/store/apps/details?id=com.tencent.mtt(在中国境外工作(进行测试。

谢谢

这对我来说很有用:

element.addEventListener('touchstart', (e) => {
e.stopPropagation();
e.preventDefault();
// Trigger desired event here
});

取消 touchstart 事件似乎使浏览器认为不再按下指针,而不是尝试取消基于长按事件的任何操作。你可以用身体替换元素,以防止它发生在所有事情上,但这可能不建议这样做(UX +其他副作用(。

最新更新