Отключить выделение текста в Chrome

Я создаю киоск с сенсорным экраном, который будет использовать Google Chrome для отображения контента. Клавиатуры нет, за исключением виртуальной клавиатуры, которая появляется для ввода информации об имени на определенных экранах. Нигде в киоске пользователю не нужно будет ничего выбирать.

Когда я помещаю палец в любое место на экране и перетаскиваю его, начинают появляться синие поля выбора. Я должен покончить с этим.

Первоначально я использовал Opera, в которой есть функция конфигурации для отключения выделения текста. Я не смог найти эквивалент для этого в Chrome.

Кто-нибудь знает, есть ли конфигурация для этого в Chrome или, альтернативно, какой Javascript выполнит это?


person Ron FIsh    schedule 30.07.2010    source источник


Ответы (2)


Почему бы просто не использовать CSS для удаления эффекта выделения вместо того, чтобы полагаться на Javascript?

*::selection {
    background:transparent;
}

*::-moz-selection {
    background:transparent;
}

*::-webkit-selection {
    background:transparent;
}

/* DO NOT COMBINE... IF COMBINED, IT WILL REFUSE TO WORK */
/* FOR CHROME 5+ (untested in 4), ONLY ::SELECTION IS REQUIRED */

Выбор по-прежнему будет возможен, но синих прямоугольников не будет. На самом деле выбор будет совершенно незаметен для пользователя.

Что я могу прочитать из вашего сценария, вы просто пытаетесь избавиться от прямоугольников выбора.

person Andrew Moore    schedule 30.07.2010
comment
это тоже работает, и мне нравятся CSS-решения... я только что понял, что другое поведение, которое я пытаюсь убить, - это возможность перетаскивать изображения по странице... и для этого тоже ищу решение css. - person Ron FIsh; 31.07.2010
comment
Обратите внимание, что это не полностью скрывает все эффекты. Если пользователь выбирает текст, выделение не будет видно, правда. Но если затем они попытаются провести пальцем по выделенному фрагменту, выделенный текст начнет перемещаться в блоке, как обычно. Просто кое-что, что нужно иметь в виду. - person Stephen Schrauger; 24.01.2018

Я не знаю, есть ли для этого настройка конфигурации в Chrome, но быстрый поиск в Google (источник) обнаружил это:

window.onload = function() {
  document.onselectstart = function() {return false;} // ie
  document.onmousedown = function() {return false;} // mozilla
}


/* You can attach the events to any element. In the following example
I'll disable selecting text in an element with the id 'content'. */

window.onload = function() {
  var element = document.getElementById('content');
  element.onselectstart = function () { return false; } // ie
  element.onmousedown = function () { return false; } // mozilla
}

PS:

Просто проверил, не будет ли это мешать каким-либо событиям onclick, и это не так.

person Korneel Bouman    schedule 30.07.2010
comment
Конечно!! Если бы у меня был первенец, он был бы твоим. И какой фантастический ресурс на internet.com... такой малоизвестный веб-адрес, неудивительно, что я так и не нашел его...;) - person Ron FIsh; 31.07.2010
comment
Document.onmousedown также предотвратит перетаскивание полосы прокрутки в Chrome. - person Stanislav Stoyanov; 31.03.2014