Javascript 如何在html或JS中禁用突出显示?
我需要在我的web应用程序上禁用所选文本的突出显示。我有一个很好的理由这样做,我知道这通常是一个坏主意。但我还是要做。我是否需要使用CSS或JS来做这件事并不重要。我的主要目的是删除突出显示元素的蓝色。我相信您的意思是选择文本(例如,拖动鼠标以突出显示)。如果是,这将取消IE和Mozilla中的选择操作:Javascript 如何在html或JS中禁用突出显示?,javascript,html,css,highlight,Javascript,Html,Css,Highlight,我需要在我的web应用程序上禁用所选文本的突出显示。我有一个很好的理由这样做,我知道这通常是一个坏主意。但我还是要做。我是否需要使用CSS或JS来做这件事并不重要。我的主要目的是删除突出显示元素的蓝色。我相信您的意思是选择文本(例如,拖动鼠标以突出显示)。如果是,这将取消IE和Mozilla中的选择操作: window.onload = function() { if(document.all) { document.onselectstart = handleSelectAtt
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;
}
我认为您正在寻找:focus伪类。试试这个:
input:focus {
background-color: #f0f;
}
选中时,它将为您的输入提供一个漂亮的紫色/粉色
我不确定您必须(取消)设置哪些属性,但我认为您可以通过尝试和错误来了解自己
还请注意,突出显示或不显示是特定于浏览器的 您的意思是当您将鼠标拖动到文本上时突出显示文本吗
最好的方法是使用名为::selection的CSS3属性,但是作为CSS3,它还没有得到很好的支持。继续查找,否则可能有一种使用Javascript的方法。如果您的最终目标是使文本的复制和粘贴更加困难,Javascript和CSS不是正确的技术,因为您无法禁用浏览器的查看源代码功能 其他一些想法(都不理想):
- java小程序(控制文本的显示和检索)
- 在不同的浏览器插件(flash、silverlight等)中相同
- 服务器端创建的映像(性能差)
::selection
和::-moz selection
例如:
::-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;
用户select还有一个webkit前缀,但它使一些表单字段无法聚焦(可能是一个临时错误),因此您可以使用以下webkit伪类:
element::selection
我只是用*来禁用所有元素的高亮显示或轮廓高亮显示
*{
outline: none;
}
答案参考:使用
preventDefault
取消selectstart
事件:
window.addEventListener(“选择开始”,函数(事件){
event.preventDefault();
});
//单行版本
addEventListener(“selectstart”,event=>event.preventDefault())代码>
标题
段落
这个问题不能以当前的形式得到真正的回答。是什么导致突出显示?你说的是关键词突出显示,还是其他什么,比如滚动?我们需要更多的信息。突出显示到底是什么意思?当我左键单击并按住鼠标按钮并拖动文本时,文本会高亮显示。这就是你的意思吗?你是说选择吗?比如当你拖动文本时?在IE中有几种方法,在其他浏览器中也有不同的方法。浏览器通常选择灰色或黑色背景,所以你的意思是链接的颜色吗?这就是我想要的,但它会阻止输入被选择吗?@jcubed。在中止事件冒泡之前,您需要确保自己不在输入或文本区域内。请看我的编辑。不,我只是不想显示大多数浏览器用来显示高亮的蓝色内容。我同意,将页面的所有部分都视为可选择文本是一个值得怀疑的假设。尤其是在实现拖放式用户界面小部件时。它不会停止选择(如果需要,请至少使用javascript->我使用jquery:window.onload=function(){document.onselectstart=function(){return false;}//ie document.onmousedown=function(){return false;}//mozilla}你可能需要额外的脚本来取消键盘快捷键,就像在Windows CTRL+A中一样。但是,确实没有可靠的方法来阻止计算机“专家”复制他们在计算机上看到的内容。你能用这个吗: