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
    // если вешать функцию не на...