Çoğu tarayıcıda, bu user-select
, başlangıçta CSS 3'te önerilen ve sonra terk edilen ve şimdi CSS UI Seviye 4'te önerilen CSS mülkündeki özel varyasyonlar kullanılarak elde edilebilir :
*.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;
}
Internet Explorer <10 ve Opera <15 için, unselectable
seçilemez olmasını istediğiniz öğenin niteliğini kullanmanız gerekir . HTML'deki bir özelliği kullanarak bunu ayarlayabilirsiniz:
<div id="foo" unselectable="on" class="unselectable">...</div>
Ne yazık ki bu özellik devralınmıyor, yani içindeki her öğenin başlangıç etiketine bir özellik koymanız gerekiyor <div>
. Bu bir sorunsa, bunu bir öğenin torunları için yinelemeli olarak yapmak için JavaScript'i kullanabilirsiniz:
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 Nisan 2014 Güncelleştirmesi : Ağaca her yeni öğe eklendiğinde bu ağaç geçişinin yeniden çalıştırılması gerekir, ancak @Han tarafından yapılan bir yorumdan , hedefin hedefine mousedown
ayarlanan bir olay işleyicisi ekleyerek bundan kaçınmanın mümkün unselectable
olduğu görülmektedir. Etkinlik. Ayrıntılar için http://jsbin.com/yagekiji/1 adresine bakın.
Bu hala tüm olasılıkları kapsamıyor. Seçilemeyen öğelerde seçimleri başlatmak imkansız olsa da, bazı tarayıcılarda (örneğin Internet Explorer ve Firefox,) tüm belgeyi seçilemez hale getirmeden seçilemez öğeden önce başlayan ve biten seçimleri engellemek hala imkansızdır.