Как изменилось контекстное меню веб-сайта MDN (Mozilla Developer Network)?
Например, эта страница.
Я думал, что они создали все контекстное меню, чтобы вызвать его, когда событие contextmenu запущено, но кажется немного сумасшедшим.
Кроме того, он не работает в Chrome, поэтому я полагаю, что это функция только для Firefox.
Кто-нибудь знает, как они это делают?
Как веб-сайт MDN меняет контекстное меню?
Ответ 1
Документация немного редка, но она использует атрибут contextmenu
который является новым в HTML5. Он использует тег menu
HTML, который теперь отличается от реализации HTML4. Поддержка браузера не так велика, но поддерживается в Firefox 8.
Вот скриншот DOM на странице, показывающий соответствующий HTML, атрибут contextmenu
в тегах body
и menu
, которые были расширены.
ОБНОВЛЕНИЕ: Этот ответ ранее заявил, что 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 будут видеть это меню, это противоречит спецификации и, вероятно, не будет поддерживаться другими браузерами.