Stack Overflow 28664376

How to disable text selection on double click, but not otherwise?

by andrewgu

HTML

<textarea id="doc"></textarea>

CSS

#doc {
    width: 400px;
    height: 300px;
}

JavaScript

var doc = document.getElementById("doc"), click = [];

function storeSelection() {
    if (click.length>3) {
        click.splice(0, click.length-3);
    }
    click.push({start:doc.selectionStart,end:doc.selectionEnd});
}

function select(start, end) {
    doc.selectionStart = start;
    doc.selectionEnd = end;    
}

function selectLast() {
    if (click.length>=1) {
        select(click[click.length-1].start,click[click.length-1].end);
    }
}

function dblClick() {
    click.splice(click.length-2,2);
    selectLast();
}

doc.addEventListener("mouseup", storeSelection);
doc.addEventListener("keyup", storeSelection);
doc.addEventListener("dblclick", dblClick);

// Dummy Text Insert //
function helloWorlds(h, v) {
    var o = "";
    for (var r=0; r<v; r++) {
        for (var c=0; c<h; c++) {
            o += "hello world ";
        }
        o += "\n";
    }
    return o.trim();
}

doc.value = helloWorlds(8, 20);