Подтвердить что ты не робот

Как отключить выделение в html или JS?

Мне нужно отключить выделение выделенного текста в моем веб-приложении. У меня есть веская причина для этого и знаю, что это вообще плохая идея. Но мне все равно нужно это сделать. Не имеет значения, нужно ли мне использовать CSS или JS для этого. В основном я занимаюсь устранением синего цвета, выделенного для выделенных элементов.

4b9b3361

Ответ 1

U может использовать селектор псевдо-класса css (:: selection и:: - moz-selection для firefox). Пример

    ::-moz-selection{
    background-color:Transparent;
    color:#000;
    }

    ::selection {
    background-color:Transparent;
    color:#000;
    }
.myclass::-moz-selection,
.myclass::selection { ... }

Ответ 2

Решение CSS3:

user-select: none;
-moz-user-select: none;

Существует также префикс webkit для выбора пользователя, но он делает некоторые поля формы невозможными для фокусировки (может быть временной ошибкой), поэтому вместо webkit можно использовать следующий псевдокласс:

element::selection

Ответ 3

Я считаю, что вы имеете в виду выбор текста (например, перетаскивание мышью, чтобы выделить). Если это так, это отменяет действие выбора в IE и Mozilla:

window.onload = function() {
  if(document.all) {
      document.onselectstart = handleSelectAttempt;
  }
  document.onmousedown = handleSelectAttempt;
}

function handleSelectAttempt(e) {
    var sender = e && e.target || window.event.srcElement;
    if(isInForm(sender)) {
        if (window.event) {
            event.returnValue = false;
        }
        return false;
    }
    if (window.event) {
        event.returnValue = true;
    }
    return true;
}

function isInForm = function(element) {
    while (element.parentNode) {
        if (element.nodeName.ToUpperCase() == 'INPUT'
            || element.nodeName.ToUpperCase() == 'TEXTAREA') {
            return true;
        }
        if (!searchFor.parentNode) {
            return false;
        }
        searchFor = searchFor.parentNode;
    }
    return false;
}

Ответ 4

Я думаю, что вы ищете псевдо-класс: focus. Попробуйте следующее:

input:focus {
  background-color: #f0f;
}

Это придает вашему входу довольно фиолетовый/розовый цвет, если он выбран.

Я не уверен, какие свойства у вас есть (un), но я думаю, вы можете узнать себя с помощью проб и ошибок.

Также обратите внимание, что выделение или отсутствие этого браузера специфичны!

Ответ 5

Вы имеете в виду выделение текста при наведении на него мыши?

Лучший способ сделать это - использовать свойство CSS3, называемое:: selection, но, тем не менее, CSS3 пока не поддерживается. Идите вперед и посмотрите, иначе, возможно, есть способ сделать это с помощью Javascript.

Ответ 6

Если ваша конечная цель состоит в том, чтобы затруднить копирование и вставку текста, Javascript и CSS не являются правильной технологией, потому что вы не можете отключить функцию просмотра браузера.

Некоторые другие идеи (ни один из них не идеален):

  • java-апплет (вы контролируете отображение и извлечение текста)
  • то же самое в другом плагине браузера (flash, silverlight и т.д.)
  • созданные на стороне сервера изображения (низкая производительность)