这是我用 JS 写的图表:
的CSS:
-moz-user-select:none;
-khtml-user-select: none;
适用于 Chrome/FF,但在 IE 中,所有元素仍然可以选择,这在拖动条形时看起来很奇怪。
如何在 IE 中使其无法选择?
这是我用 JS 写的图表:
的CSS:
-moz-user-select:none;
-khtml-user-select: none;
适用于 Chrome/FF,但在 IE 中,所有元素仍然可以选择,这在拖动条形时看起来很奇怪。
如何在 IE 中使其无法选择?
在 IE 中,您需要unselectable
HTML 中的属性:
<div id="foo" unselectable="on">...</div>
...或通过 JavaScript 设置:
document.getElementById("foo").setAttribute("unselectable", "on");
需要注意的是,不可选择性不会被不可选择元素的子元素继承。这意味着您要么必须在每个元素的开始标记中放置一个属性,<div>
要么使用 JavaScript 为元素的后代递归地执行此操作:
function makeUnselectable(node) {
if (node.nodeType == 1) {
node.setAttribute("unselectable", "on");
}
var child = node.firstChild;
while (child) {
makeUnselectable(child);
child = child.nextSibling;
}
}
makeUnselectable(document.getElementById("foo"));
您可以使用 Javascript 使文本在所有浏览器中都无法选择:
document.onselectstart=new Function('return false');
function noselect(e){return false;}
function click(){return true;}
document.onmousedown=noselect;
document.onclick=click;
在这个 SO 线程中描述了另一种方法:Is there a way to make text unselectable on an HTML page?
最便宜的方法可能是<body onselectstart="return false">
最好的方法可能是使用以下 CSS:
[unselectable=on] { -moz-user-select: none; -khtml-user-select: none; user-select: none; }
并将IE 不可选择属性添加到要使其不可选择的元素(unselectable="on"
在 HTML 中;element.setAttribute("unselectable","on")
在 javascript 中)
有一个unselectable="on"
属性。
http://msdn.microsoft.com/en-us/library/ms537840%28VS.85%29.aspx
和相关的 SO 线程:有没有办法使 HTML 页面上的文本无法选择?
到目前为止,这似乎在 Chrome 和 IE11 中运行良好,使用 JQuery ...
function fMakeNodeUnselectable(node){
$(node).css({"cursor":"default","-moz-user-select":"-moz-none","-khtml-user-select":"none","-webkit-user-select":"none","-o-user-select":"none","user-select":"none"});
$(node).attr("unselectable","on");
}