2013-11-06 5 views
0

Я блокирую контекстное меню, а затем хочу восстановить его в предыдущем состоянии.Можно восстановить контекстное меню

myElement = document.querySelector('*'); 
myElement.addEventListener('contextmenu', MyContextMenu); 

можно восстановить контекстное меню по умолчанию после выполнения вышеуказанного кода? если да, то как и как сделать это правильно?

Я хочу заблокировать контекстное меню, а затем восстановить его через некоторое время.

+0

Не уверен, что, если я правильно понимаю ваш вопрос, но вы могли бы назвать 'myElement.removeEventListener («»ContextMenu, MyContextMenu)' в то время, когда вы не хотите иметь 'MyContextMenu' называться больше для следующих вызовов контекстного меню. –

ответ

1
var oldHandlerToKeep = element.oncontextmenu 
+0

можно передать в качестве параметра: 'myElement.addEventListener ('contextmenu', MyContextMenu (myElement.oncontextmenu));' – ManY

+0

, если я могу передать старый обработчик новому обработчику, тогда этот ответ мне достаточно – ManY

+0

Это работает только в том случае, если другой обработчик был задан с помощью 'element.oncontextmenu = AnotherHandler;', но не если он был зарегистрирован с помощью элемента element.addEventListener ('contextmenu', AnotherHandler); '. В любом случае, пока 'MyContextMenu' не возвращает' false', останавливает распространение или предотвращает поведение по умолчанию, другие обработчики (включая значение по умолчанию) также должны вызываться, потому что 'addEventListener' не перезаписывает существующие обработчики, а просто добавляет дополнительный. –

Смежные вопросы