我正在阻止上下文菜单,然后我想将其恢复到以前的状态。
myElement = document.querySelector('*');
myElement.addEventListener('contextmenu', MyContextMenu);
执行上述代码后是否可以恢复默认上下文菜单?如果答案是肯定的,那么如何或如何正确地做到这一点?
我想要的是阻止上下文菜单,然后在一段时间后恢复它。
我正在阻止上下文菜单,然后我想将其恢复到以前的状态。
myElement = document.querySelector('*');
myElement.addEventListener('contextmenu', MyContextMenu);
执行上述代码后是否可以恢复默认上下文菜单?如果答案是肯定的,那么如何或如何正确地做到这一点?
我想要的是阻止上下文菜单,然后在一段时间后恢复它。
var oldHandlerToKeep = element.oncontextmenu
将所有上下文菜单重新分配为默认值:
document.querySelector('div').oncontextmenu = _=>false;
var d = document.createElement('div').oncontextmenu;
[...document.querySelectorAll("*")].forEach(e => e.oncontextmenu = d);
<div>sample</div>
document.body.oncontextmenu = null;
document.addEventListener("contextmenu",
function (event) {
event.returnValue = true;
if (typeof(event.stopPropagation) === 'function')
{
event.stopPropagation();
}
if (typeof(event.cancelBubble) === 'function')
{
event.cancelBubble();
}
}, true);
preventDefault()
如果之前调用过,这有助于恢复上下文菜单。希望它可以帮助一些路人。