我有一个带有一系列表的Web应用程序。在这些表的某些单元格上,我定义了一个oncontextmenu-event处理程序:
cell.oncontextmenu = function(e) {
e.preventDefault;
showTargetCellMenu(event, e.target.id, e.target.innerText);
return false;
};
showTargetCellMenu()将打开一个div,其中包含一系列可供选择的选项(类似于下拉菜单的选项;此处显示很多代码)。 释放鼠标右键后,此上下文菜单应保持可见(就像默认的上下文菜单一样),直到正文收到click事件并调用此函数为止:
function closeTargetCellMenu() {
let oldMenu = document.getElementById('targetCellMenu');
if (oldMenu !== null) {
document.body.removeChild(oldMenu);
}
}
到目前为止,该功能适用于所有浏览器 野生动物园。在野生动物园中,一旦释放鼠标右键,“ targetCellMenu”就会关闭。为什么会这样,如何预防呢?
编辑:显然,仅当使用触摸板+控件右键单击时(在MacBook上),才会出现此问题。使用“真实”鼠标,一切正常。但是,问题仍然仅限于野生动物园。用于右键单击的触摸板+控件可在其他浏览器中完美运行,例如Firefox。