Android 如何禁用腾讯/X5/微信浏览器的上下文菜单
How to disable context menu in Tencent / X5 / WeChat browser on Android
我有一个 web 应用程序,它有一些交互,用户需要长按/按住屏幕才能前进,这一切都很好,但是在中国的微信上,类似于腾讯 browser/webviews (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 + 其他副作用)。
我有一个 web 应用程序,它有一些交互,用户需要长按/按住屏幕才能前进,这一切都很好,但是在中国的微信上,类似于腾讯 browser/webviews (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 + 其他副作用)。