有什么方法可以阻止突出显示文本的"取消选择"?

sam*_*sam 8 html javascript css html-select

突出显示此网页上的一些文字,然后基本上点击文档的任何位置.您的选择将消失.

当用户通过CSS或Javascript单击特定元素时,有没有办法防止此行为?

例如:

var element = document.getElementById("foo");
foo.onclick = function(e){
   //some magic here that prevents deselection from occuring
}
Run Code Online (Sandbox Code Playgroud)

要么

foo.style.preventDeselect = "true";
Run Code Online (Sandbox Code Playgroud)

编辑:也许我可以存储选择,然后"鼠标点击"恢复选择?有没有办法存储选择,然后重新选择它?

谢谢!

sam*_*sam 8

onmousedown 中的“return false”和“e.preventDefault()”适用于 FF 和 Safari,但不适用于 IE。据我所知,IE 的唯一解决方案是抛出错误。

这适用于所有浏览器(但在 IE 中会导致错误,因为 preventDefault 不是一种方法):

//clicking the 'test' element will not deselect text.
var test = document.getElementById("test");
test.onmousedown = function(e){
  e = e || window.event;
  e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我仍然希望在 IE 中无错误地执行此操作

感谢 Paolo Bergantino 的“onmousedown”提示。


Spa*_*arr 1

这种行为虽然在现代浏览器中最为普遍,但却是特定于浏览器/实现的,并且几乎与 CSS 或 Javascript 完全无关。特别要注意的是,Firefox 为整个页面和文本框的内容维护单独的选择状态,而 IE 则不这样做。更糟糕的是,考虑具有单独的鼠标和键盘选择界面的文本模式浏览器。