Показать сообщение отдельно
  #1 (permalink)  
Старый 31.05.2013, 17:40
Аспирант
Посмотреть профиль Найти все сообщения от Maxmaxmaximus.js
 
Регистрация: 28.05.2013
Сообщений: 74

Как сделать чтобы выделение работало и в обратную сторону(?
<!DOCTYPE html>


<html>
<head>
  <meta charset="UTF-8">
  <title>UI.js</title>

  <script src="http://yourjavascript.com/83115331584/fix-min.js"></script>
  <script src="http://yourjavascript.com/65381238113/ui.js"></script>

</head>
<body>


<div ui="chat">
  <input ui="chat-input">
  ololo {{chat.input}} трололо
</div>


</body>
</html>


Вот функция которая запоминает выделение до рендеринга а потом воспроизводит его

ModuleMarker.prototype.renderTextNode = function(textNode) {

  var sel = window.getSelection();
  var anchorOffset = sel.anchorOffset;
  var focusOffset = sel.focusOffset;
  var anchorNode = sel.anchorNode;
  var focusNode = sel.focusNode;

  var template = textNode.template;
  var scope = this.scope;
  with (scope) var value = eval(template);
  var type = typeof value;

  textNode.nodeValue = (type === 'string' || type === 'number' || type === 'object') ? value : '';


  if (anchorNode && focusNode) {
    var rng = document.createRange();
    rng.setStart(anchorNode, anchorOffset);
    rng.setEnd(focusNode, focusOffset);
    sel.removeAllRanges();
    sel.addRange(rng);
  }

};


Если поступить логично и поменять пойнты местами, то выделение вообще не работает)

Последний раз редактировалось Maxmaxmaximus.js, 31.05.2013 в 17:48.
Ответить с цитированием