Не баг, а фича: нативное контекстное меню в обложках для динамического контента

5 0

Недавно исследовал очень странный баг - при добавлении iframe на страницу, открытую в обложке папки, у меня переставали работать кастомные контекстные меню для ссылок.
Оказалось, что Directum при загрузке iframe добавляет свои обработчики contextmenu для всей страницы и показывает для элементов <a/> своё контекстное меню!
Раньше для динамически размещаемых ссылок на объекты я добавлял их в html до полной загрузки страницы (детальнее в этом ответе на вопрос).
Оказалось, что достаточно выполнить следующий код в любой момент времени и Directum привяжет ко всем <a/> свои контекстные меню.

if(!document.forContexMenu){
  var ifrm = document.createElement('iframe');
  ifrm.setAttribute('id', 'forContexMenu');
  ifrm.setAttribute('style', 'display:none;');
  ifrm.setAttribute('src', 'javascript:void(0);');
  document.body.appendChild(ifrm);
} else {
  document.forContexMenu.src = 'javascript:void(0);';
}

Контекстное меню до и после выполнения этого кода:

Проверял на 5.0 и 5.7

5
Авторизуйтесь, чтобы оценить материал.
3
Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий