Есть ли способ сделать текст невыбираемым на странице HTML? [Дубликат]

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

139
задан Peter Mortensen 17 April 2016 в 05:29
поделиться

11 ответов

Изображения могут быть выбраны также.

Существуют пределы использованию JavaScript для отмены выбора текста, как это могло бы произойти даже в местах, где Вы хотите выбрать. Для обеспечения богатой и успешной карьеры избегайте всех требований, чтобы способность к потребности влиять или управлять браузером вне дежурного блюда..., если, конечно, они не платили Вам чрезвычайно хорошо.

1
ответ дан 23 November 2019 в 23:19
поделиться

Абсолютно отделения положения по текстовой области с z-индексом выше и дают этим отделениям прозрачный фоновый рисунок GIF.

Отметьте после немного более размышления - у Вас должны были бы быть эти 'покрытия' быть связанными настолько нажимающие на них, возьмет Вас туда, где вкладка, как предполагалось, что означает, что Вы могли сделать это с набором элемента привязки к display:box, ширина и набор высоты, а также изображение прозрачного фона.

6
ответ дан 23 November 2019 в 23:19
поделиться

Для Safari, -khtml-user-select: none, точно так же, как Mozilla -moz-user-select (или, в JavaScript, target.style.KhtmlUserSelect="none";).

4
ответ дан 23 November 2019 в 23:19
поделиться

Если это выглядит плохо, можно использовать CSS для изменения появления выбранных разделов.

1
ответ дан 23 November 2019 в 23:19
поделиться

Я нахожу некоторый уровень успеха с CSS описанным здесь http://www.quirksmode.org/css/selection.html:

::selection {
    background-color: transparent;
}

Это заботилось о большинстве проблем, которые я имел с некоторым ThemeRoller ul элементы в приложении AIR (механизм WebKit). Все еще получая маленькое (приблизительно 15 x 15) патч небытия, которое выбрано, но половина страницы выбиралась прежде.

8
ответ дан 23 November 2019 в 23:19
поделиться

Для Firefox можно применить объявление CSS "-moz-user-select" ни к "одному". Проверьте их документацию, пользовательский выбор.

Это - "предварительный просмотр" будущего "пользовательского выбора", как они говорят, поэтому возможно, Opera или основанные на WebKit браузеры будут поддерживать это. Я также вспоминаю нахождение чего-то для Internet Explorer, но я не помню что :).

Так или иначе, если это не определенная ситуация, где выбор текста делает некоторый динамический сбой функциональности, Вы не должны действительно переопределять то, что пользователи ожидают от веб-страницы, и это - способность выбрать любой текст, который они хотят.

11
ответ дан 23 November 2019 в 23:19
поделиться

Попробуйте это:

<div onselectstart="return false">some stuff</div>

Простой, но эффективный... работает в текущих версиях всех главных браузеров.

13
ответ дан 23 November 2019 в 23:19
поделиться

Для примера того, почему могло бы быть желательно подавить выбор, посмотрите Временную шкалу СРАВНЕНИЯ, которая использует перетаскивание для исследования временной шкалы, во время которой случайное вертикальное движение мыши заставляет маркировки быть неожиданно выделенными, который выглядит странным.

4
ответ дан 23 November 2019 в 23:19
поделиться
<script type="text/javascript">

/***********************************************
* Disable Text Selection script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code

***********************************************/


function disableSelection(target){

    if (typeof target.onselectstart!="undefined") //IE route
        target.onselectstart=function(){return false}

    else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
        target.style.MozUserSelect="none"

    else //All other route (ie: Opera)
        target.onmousedown=function(){return false}

    target.style.cursor = "default"
}



//Sample usages
//disableSelection(document.body) //Disable text selection on entire body
//disableSelection(document.getElementById("mydiv")) //Disable text selection on element with id="mydiv"


</script>

Править

Код, по-видимому, прибывает из http://www.dynamicdrive.com

41
ответ дан 23 November 2019 в 23:19
поделиться

Следующее работает в Firefox довольно интересно, если я удалю строку записи, это не сработает. Кто-нибудь знает, зачем нужна линия записи.

<script type="text/javascript">
document.write(".");
document.body.style.MozUserSelect='none';
</script>
0
ответ дан 23 November 2019 в 23:19
поделиться

Любой метод JavaScript или CSS легко обойти с помощью Firebug (как в случае с Flickr).

Вы можете использовать псевдоэлемент :: selection в CSS для изменения цвета выделения.

Если вкладки являются ссылками, а пунктирный прямоугольник в активном состоянии вызывает беспокойство, вы также можете удалить его (конечно, учитывайте удобство использования).

1
ответ дан 23 November 2019 в 23:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: