Как отключить контекстное меню при щелчке правой кнопкой мыши/длинном касании в режиме киоска Chrome?
мы работаем над программным обеспечением для музея. Есть несколько интерактивных киосков с сенсорным экраном, работающих на Windows 8.1, которые подключены к локальной сети. Ни клавиатуры, ни мыши. Сервер с Apache на нем содержит несколько локальных сайтов. Каждый киоск запускает копию Google Chrome в режиме киоска. Итак, у нас есть какие-то локальные веб-приложения, которые предоставляют посетителю музея информацию.
теперь проблема. Если посетитель делает длинное касание на экране, он работает как аналог щелчка правой кнопкой мыши. Появится контекстное меню. Нам это совсем не нужно. Я добавил "oncontextmenu = return false" в тег body, и это помогло. Но. У нас есть несколько внешних сайтов, работающих в iframes (музей имеет подключение к интернету). И контекстное меню тут появляются на iframes. AFAIK, нет способа отключить его с помощью javascript.
наш системный инженер получил программное обеспечение, которое полностью отключает щелчок правой кнопкой мыши в Windows. В любом месте, в том числе Хром. Но. Это работает для мыши. А умиляет... ну, он отключает сенсорные события в любом месте кроме того Chrome. Возможно, у Chrome есть собственный обработчик событий touch, я не знаю.
Так, в конце концов. Нам нужно избавиться от контекстного меню на iframes при щелчке правой кнопкой мыши/длинном касании в режиме киоска Chrome. Пожалуйста, дайте мне совет.
1 ответов
я предполагаю, что вы показываете простой http://...
(или https://...
или file://...
) веб-страница на вашем киоске. Если вы действительно показываете приложение (т. е. chrome-extension://...
), тогда эта стратегия не сработает.
расширение Chrome, которое вводит window.addEventListener("contextmenu", function(e) { e.preventDefault(); })
в каждом контексте просмотра, вероятно, сделает трюк, чтобы заблокировать контекстные меню на фреймы.
манифест.в JSON:
{
"manifest_version": 2,
"name": "Context Menu Blocker",
"version": "1.0",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["contextblocker.js"],
"all_frames": true,
"match_about_blank": true
}
]
}
contextblocker.js:
window.addEventListener("contextmenu", function(e) { e.preventDefault(); })
просто создайте папку и поместите два файла внутри. Затем перейдите в chrome://extensions/
, Регистрация