Подтвердить что ты не робот

Как веб-сайт MDN меняет контекстное меню?

Как изменилось контекстное меню веб-сайта MDN (Mozilla Developer Network)?
Например, эта страница.
Я думал, что они создали все контекстное меню, чтобы вызвать его, когда событие contextmenu запущено, но кажется немного сумасшедшим.
Кроме того, он не работает в Chrome, поэтому я полагаю, что это функция только для Firefox.
Кто-нибудь знает, как они это делают?
enter image description here

4b9b3361

Ответ 1

Документация немного редка, но она использует атрибут contextmenu который является новым в HTML5. Он использует тег menu HTML, который теперь отличается от реализации HTML4. Поддержка браузера не так велика, но поддерживается в Firefox 8.

Вот скриншот DOM на странице, показывающий соответствующий HTML, атрибут contextmenu в тегах body и menu, которые были расширены.

contextmenu dom

ОБНОВЛЕНИЕ: Этот ответ ранее заявил, что Chrome 36 и выше поддерживают эту функцию, как ранее указывалось на странице caniuse. Это, похоже, не так, и caniuse удалил эту информацию.

Ответ 2

Я только что закончил писать статью о меню HTML5 и поддержке браузера: https://dpogue.ca/articles/html5-menu.html

Подводя итог:

  • Firefox реализует это с использованием более старого (неспециализированного) атрибута type="context" в теге меню. Существует ошибка для обновления Firefox до более новой спецификации.

  • Chrome реализует его в соответствии со спецификацией (type="popup") с Chrome 41, но он находится за флагом "Экспериментальные веб-платформы".

Из-за этой разницы в атрибуте type, по сути, невозможно одновременно нацеливать обе реализации. Пока type="context" означает, что пользователи Firefox будут видеть это меню, это противоречит спецификации и, вероятно, не будет поддерживаться другими браузерами.