Мы работаем над программным обеспечением для музея. В Windows 8.1 есть несколько интерактивных киосков с сенсорным экраном, которые подключены к локальной сети. Нет клавиатуры, нет мыши. Сервер с Apache на нем содержит несколько локальных сайтов. Каждый киоск запускает копию Google Chrome в режиме киоска. Итак, у нас есть какие-то локальные веб-приложения, которые предоставляют посетителю музея информацию.Как отключить контекстное меню правой кнопкой мыши/длинным касанием в режиме киоска Chrome?
Теперь проблема. Если посетитель долго прикасается к экрану, он работает как аналоговый щелчок правой кнопкой мыши. Появится контекстное меню. Мы этого не хотим. Я добавил «oncontextmenu = return false» в тег body, и это помогло. Но. У нас есть несколько внешних веб-сайтов, работающих в iframe (в музее есть подключение к Интернету). И контекстное меню делает появляется на iframes. AFAIK, нет возможности отключить его с помощью javascript.
Наш системный инженер получил программное обеспечение, которое полностью отключает правый щелчок в Windows. В любом месте, включая Chrome. Но. Он работает для мыши. А что касается касаний ... ну, он отключает события касания где-то кроме Chrome. Возможно, у Chrome есть свой обработчик событий касания, я не знаю.
Итак, в конце концов. Нам нужно избавиться от контекстного меню на iframes при щелчке правой кнопкой мыши/длинном касании в режиме киоска Chrome. Пожалуйста, дайте мне совет.
Хотя это потенциально может быть лазейкой безопасности, вы можете попробовать и отключить политику перекрестного домена Chrome и использовать 'window .frames ["frame_id"]. document.oncontextmenu = function() {return false}; ' – JCOC611
@ JCOC611, отключив политику происхождения кросс-домена Chrome, вы подразумеваете запуск с помощью переключателя --disable-web-security? Если да, то это не работает, к сожалению ... – korsun
Я думаю, что мой ответ не будет работать, если ваш просмотр кисока находится внутри приложения Chrome - вы не можете вставлять скрипт содержимого в iframe, загруженный внутри другого расширения или страницы приложения, даже если iframe предназначен для страницы, к которой обычно должен иметь расширение. ** Однако ** Я думаю, что можно решить вашу проблему, используя [''] (https://developer.chrome.com/apps/tags/webview) элементы вместо iframes: используйте 'executeScript' когда веб-просмотр запускает событие «contentload». –
apsillers