Как отключить контекстное меню при щелчке правой кнопкой мыши/длинном касании в режиме киоска 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/, Регистрация