अधिकांश ब्राउज़रों में, यह CSS user-select
संपत्ति पर मालिकाना भिन्नता का उपयोग करके प्राप्त किया जा सकता है , मूल रूप से प्रस्तावित और फिर CSS 3 में छोड़ दिया गया और अब CSS UI स्तर 4 में प्रस्तावित है :
*.unselectable {
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
/*
Introduced in Internet Explorer 10.
See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/
*/
-ms-user-select: none;
user-select: none;
}
इंटरनेट एक्सप्लोरर <10 और ओपेरा <15 के लिए, आपको unselectable
उस तत्व की विशेषता का उपयोग करने की आवश्यकता होगी जिसे आप अचूक होने की इच्छा रखते हैं। आप इसे HTML में एक विशेषता का उपयोग करके सेट कर सकते हैं:
<div id="foo" unselectable="on" class="unselectable">...</div>
अफसोस की बात है कि यह संपत्ति विरासत में नहीं मिली है, जिसका अर्थ है कि आपको प्रत्येक तत्व के प्रारंभ टैग में एक विशेषता डालनी होगी <div>
। यदि यह एक समस्या है, तो आप इसके बदले जावास्क्रिप्ट का उपयोग किसी तत्व के वंशजों के लिए कर सकते हैं:
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"));
अपडेट 30 अप्रैल 2014 : इस पेड़ ट्रेवर्सल जरूरतों फिर से दौड़ना होने के लिए जब भी कोई नया तत्व पेड़ में जोड़ा जाता है, लेकिन यह @Han द्वारा एक टिप्पणी है कि यह एक जोड़कर इस से बचने के लिए संभव है से लगता mousedown
ईवेंट हैंडलर कि सेट unselectable
का लक्ष्य पर प्रतिस्पर्धा। देखें http://jsbin.com/yagekiji/1 जानकारी के लिए।
यह अभी भी सभी संभावनाओं को कवर नहीं करता है। हालांकि कुछ ब्राउज़रों में चयन करना शुरू करना असंभव है, कुछ ब्राउज़रों (उदाहरण के लिए इंटरनेट एक्सप्लोरर और फ़ायरफ़ॉक्स) में, अभी भी चयन को रोकना असंभव है, जो पूरे दस्तावेज़ को अचूक बनाने के बिना अचूक तत्व के पहले और अंत के बाद शुरू होता है।