2016-07-26 2 views
1

Я хочу предотвратить выбор для определенного элемента html, поэтому попробовал применить свойство CSS «пользовательский» CSS, чтобы это произошло во всех браузерах. что-то вроде ниже.Проблема с предотвращением выбора текста в IE

.section1{ 
     -webkit-user-select: none; /* Chrome all/Safari all */ 
     -moz-user-select: none;  /* Firefox all */ 
     -ms-user-select: none;  /* IE 10+ */ 
     user-select: none;   /* Likely future */  
    } 

Это прекрасно работает, когда я применил свойство CSS «user-select» CSS как «none» для всех разделов div. Но когда раздел (раздел 2) между верхним (секция1) и нижним (раздел 3) не имеет применяемого свойства, и выбор происходит, когда выбор начинается с раздела 1 (сверху) или раздела2 (внизу) и продолжается до раздела 2 (midddle).

Эта проблема возникает только в IE, и то же самое прекрасно работает в chrome и firefox.

В приложении JSFiddle ссылка для него. https://jsfiddle.net/Thirunavukkarasu/bwf5emvp/

+3

http://stackoverflow.com/questions/3900798/is-there-user-select-for-opera-10-62-and-ie9 –

+0

Текст раздела 2 также выбирается в Firefox v. 49. Итак, что актуальная проблема? не получилось? – Vir

+0

Спасибо! Но когда я начинаю выбирать из выбираемого элемента, расширяю свой выбор до невыбираемого элемента, это не сработает :( –

ответ

0

Для IE < 10 (также IE10, если пользователь выбрать не работает) и Opera, вам нужно будет использовать недоступный атрибут элемента, который вы хотите быть неактивны. Вы можете установить это с помощью атрибута в HTML:

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

Java Script:

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

Смежные вопросы