javascript закрепить выделение текста

283
26 ноября 2016, 17:59

Здравствуйте, как можно закрепить выделение текста на странице?

Сделал так:

var gRng; //!
sheet.addEventListener('mouseup',function(){
  var sel = window.getSelection();
  if(sel.type==="Range"){
    gRng=sel.getRangeAt(0);
  }
})
document.addEventListener('click', function(event){ //!
  if(event.target.id!=='sheet'){
    var d_sel = window.getSelection();
    d_sel.removeAllRanges();
    d_sel.addRange(gRng);
  }
})

Все работает, не нравятся две вещи, а именно глобальная переменная и прослушка клика на документе. Да и вообще пологаю что это прям дубовый костыль.

Как можно решить эту проблему лаконичней?