2015-08-28 6 views
0

В моем приложении, мы используем этот паттерн много:Деактивировать выделение текста и использовать выберите элемент с светлячок 40

<select name="select" onfocus=this.select; onClick=this.focus();> 
 
    <option value="value1" selected>Value 1</option> 
 
    <option value="value2">Value 2</option> 
 
</select> 
 

 
<script> 
 
document.onmousedown = new Function("return false"); 
 
</script>

Линия document.onmousedown = new Function("return false"); направлена, чтобы предотвратить выделение текста на странице. Несчастливо, оно также блокирует распространение события mousedown к элементу select. На рабочем столе мы используем обратные вызовы onfocus=this.select; onClick=this.focus();.

Моя проблема в том, что он не работает с Firefox 40: нажатие на поле выбора ничего не делает. (отлично работает с 39)

Я могу удалить строку document.onmousedown = new Function("return false"); для исправления окна выбора, но это позволит выбрать текст на странице.

Мой вопрос: каковы мои возможности иметь как рабочий поле выбора, так и нерабочий выбор текста с Firefox 40?

+0

Не можете ли вы просто использовать CSS? '-moz-user-select: none; user-select: none; '(и любые необходимые префиксы поставщика) – CodingIntrigue

+0

@RGraham Thx, я должен был сосредоточиться на том, что делать с элементом select, чтобы искать другие способы ... –

ответ

1

Вы можете использовать CSS.

.noselect { 
    -webkit-touch-callout: none; 
    -webkit-user-select: none; 
    -khtml-user-select: none; 
    -moz-user-select: none; 
    -ms-user-select: none; 
    user-select: none; 
} 

Затем примените noselect класс (или что вы хотите назвать его) любые элементы, текст, который вы не хотите, чтобы выбрать.

См. this question, в котором обсуждается поддержка этих различных свойств css в разных браузерах.

 Смежные вопросы

  • Нет связанных вопросов^_^