如果在选择内单击,则可编辑元素中的选择不正确

时间:2015-02-18 15:30:56

标签: javascript click selection designmode

我刚注意到影响选择的可编辑元素(设计模式)中的错误行为。

以下是示例:



document.addEventListener('mouseup', function(e) {
  // get selection
  var selection = window.getSelection();
  if (selection.rangeCount === 1) {
    var range = selection.getRangeAt(0);
    console.log(range.startOffset);
  }
}, false);

#el {
  border:1px solid black;
  padding:5px;
  height:200px;
  margin-bottom:10px;
  overflow:auto;
}

<div id="el" contenteditable="true">
  Select whole Text<br/>
  Then click within selection
</div>
&#13;
&#13;
&#13;

此示例在每次在元素中单击鼠标时输出选择的起始偏移量。这通常可以正常工作,但不适用于以下情况:

  1. 选择一个文本范围(正确打印起始偏移)
  2. 点击所选文字内的 (错误地打印起始偏移,打印前选择的起始偏移)
  3. 在同一位置点击再次(现在可以正确打印起始偏移)
  4. 因此,每当在前一个选择中设置选择时,无法正确检索位置。

    错误似乎发生在每个浏览器中(在FF,IE,Chrome中测试)。

    有人知道如何解决这个问题吗?

0 个答案:

没有答案