在我的应用程序中,我们经常使用这种模式:
<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>
&#13;
第document.onmousedown = new Function("return false");
行的目的是阻止页面中的文字选择。不幸的是,它还阻止了mousedown事件传播到select元素。我们使用的workarround是回调onfocus=this.select; onClick=this.focus();
。
我的问题是它不能与Firefox 40一起使用:点击选择框什么都不做。 (适用于39)
我可以删除行document.onmousedown = new Function("return false");
来修复选择框,但它允许在页面中选择文字。
我的问题是:我可以选择使用Firefox 40同时选择工作选择框和不工作文本吗?
答案 0 :(得分: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属性的支持。