我需要在我的网络应用程序上禁用所选文本的突出显示.我有充分的理由这样做,并知道这通常是一个坏主意.但无论如何我还是需要这样做.如果我需要使用CSS或JS来做这件事并不重要.我主要想要的是去除突出显示元素的蓝色.
你可以使用css伪类选择器(:: selection和:: - moz-selection for firefox).例
::-moz-selection { background-color: transparent; color: #000; } ::selection { background-color: transparent; color: #000; } .myclass::-moz-selection, .myclass::selection { ... }
CSS3解决方案:
user-select: none; -moz-user-select: none;
用户选择还有一个webkit前缀,但它使一些表单字段无法集中(可能是一个临时错误),因此您可以使用以下伪类来代替webkit:
element::selection
我相信你的意思是选择文字(例如,将鼠标拖过来突出显示).如果是这样,这将取消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; }