JSFiddle - React, Tailwind, and code Playground
HTML
<div unselectable="on">
bgegbtebgtrb
bgegbtebgtrbbgegbtebgtrbbge gbtebgtrbbgeg btebgtrbbgegbtebgtrbb gegbtebgtrbbgegbtebgtrb
<a href="#">vycftyctycyt</a>
<div id="modalWrapper">
<div id="modalBG"></div>
</div>
</div>
CSS
/*
Запрет выделения текста через стили
Этого буит достаточно для нормальных браузеров.
*/
body{
-o-user-select: none;
-webkit-user-select: none; /* для хрома точно буит работать*/
-moz-user-select: -moz-none; /* и для фейлвокса тож */
-khtml-user-select: none;
-ms-user-select: none;
user-select: none;
}
#modalWrapper{
width: 100%;
height: 100%;
position: fixed;
z-index: 9000;
top: 0px;
left: 0px;
}
#modalBG{
width: 100%;
height: 100%;
background: #000;
visibility: visible;
opacity: 0.66;
}
JavaScript
/*
-> http://habrahabr.ru/post/18080/
А здеся у нас кросбраузерный хак
Он кроме всего прочего обрабатывает ctrl+A
Алсо можно вот тот код CSS добавлять к кокомуто элементу и радоватся.
Сам думай что и как применять. Ибо я твою задачу не особо понимаю.
Модальное окошечко можно и нагуглить.
Но! Это усё не для защиты от копирования.
Тебя небеса покарают, если ты подумаешь нечто подобное.
*/
function preventSelection(element){
var preventSelection = false;
function addHandler(element, event, handler){
if (element.attachEvent)
element.attachEvent('on' + event, handler);
else
if (element.addEventListener)
element.addEventListener(event, handler, false);
}
function removeSelection(){
if (window.getSelection) { window.getSelection().removeAllRanges(); }
else if (document.selection && document.selection.clear)
document.selection.clear();
}
function killCtrlA(event){
var event = event || window.event;
var sender = event.target || event.srcElement;
if (sender.tagName.match(/INPUT|TEXTAREA/i))
return;
var key = event.keyCode || event.which;
if (event.ctrlKey && key == 'A'.charCodeAt(0)) // 'A'.charCodeAt(0) можно заменить на 65
{
removeSelection();
if (event.preventDefault)
event.preventDefault();
else
event.returnValue = false;
}
}
// не даем выделять текст мышкой
addHandler(element, 'mousemove', function(){
if(preventSelection)
removeSelection();
});
addHandler(element, 'mousedown', function(event){
var event = event || window.event;
var sender = event.target || event.srcElement;
preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
});
// борем dblclick
// если вешать функцию не на...