Prevent selection in HTML Prevent selection in HTML javascript javascript

Prevent selection in HTML


The proprietary variations of user-select will work in most modern browsers:

*.unselectable {   -moz-user-select: -moz-none;   -khtml-user-select: none;   -webkit-user-select: none;   /*     Introduced in IE 10.     See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/   */   -ms-user-select: none;   user-select: none;}

For IE < 10 and Opera, you will need to use the unselectable attribute of the element you wish to be unselectable. You can set this using an attribute in HTML:

<div id="foo" unselectable="on" class="unselectable">...</div>

Sadly this property isn't inherited, meaning you have to put an attribute in the start tag of every element inside the <div>. If this is a problem, you could instead use JavaScript to do this recursively for an element's descendants:

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"));


It's seem CSS user-select don't prevent image drag and drop... so..

HTML :

<img src="ico.png" width="20" height="20" alt="" unselectable="on" /> Blabla bla blabla

CSS :

* {     user-select: none;    -khtml-user-select: none;    -o-user-select: none;    -moz-user-select: -moz-none;    -webkit-user-select: none;}::selection { background: transparent;color:inherit; }::-moz-selection { background: transparent;color:inherit; }

JS :

$(function(){    $('*:[unselectable=on]').mousedown(function(event) {        event.preventDefault();        return false;    });});


I use cancelBubble=true and stopPropagation() in the mouse down and move handlers.