选择文本时防止 Edge 中出现上下文菜单

问题描述 投票:0回答:3

在最新版本中,Edge 在选择文本时会显示上下文菜单。有什么方法可以用 JavaScript 来阻止这种行为吗?我试过

window.oncontextmenu = e => {e.preventDefault();};
但这并不成功。

javascript contextmenu microsoft-edge
3个回答
13
投票

如果您不需要在 Edge 中使用此功能,您可以通过 Edge 中的特定设置禁用此菜单。

只需按照以下步骤操作:

  1. 在 Edge 中导航至
    edge://settings/appearance
  2. 向下滚动页面至
    Context menus
    部分。
  3. 禁用该选项
    Show mini menu when selecting text

类似这样的:

此外,您还可以根据需要在特定站点上禁用此功能。


2
投票
window.onmouseup = event => event.preventDefault();

0
投票

按照 Dmitry Korenko 提示,我制作了一个仅在浏览器为 Edge 时添加事件的版本。我还添加了“mousedown”事件,因为我注意到在取消 mouseup 的情况下删除选择变得更加困难。

function disableEdgeMiniMenu() {
    if (/Edg\//.test(window.navigator.userAgent)) { // if it's edge (chromium-based)
        window.addEventListener("mouseup", event => event.preventDefault())
        window.addEventListener("mousedown", () =>  window.getSelection().empty())
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.