【发布时间】:2018-05-31 21:02:25
【问题描述】:
虽然没有错误,而且 Edge 和 IE11 都支持 range.setStartBefore 和 range.setEndAfter,但没有任何反应。我检查了每个属性,一切看起来都正常,但没有突出显示/选择整个范围。
这适用于 Chrome、Firefox 和 Opera。
要进行交互,请选择 lorem ipsum 文本中间的几个字符或单词。 Chrome、Firefox 和 Opera 将像他们应该的那样选择其余的 lorem ipsum 文本。 Edge 和 IE11 什么都不做。
演示:https://codepen.io/anon/pen/OEVzoe
document.querySelector('div').addEventListener('mouseup', function() {
var range = window.getSelection().getRangeAt(0);
range.setStartBefore(range.startContainer.parentNode);
range.setEndAfter(range.endContainer.parentNode);
});
<div contenteditable="true">
<p>Hi</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Cum aspernatur veniam ut accusamus, ratione nemo veritatis itaque, quia esse in recusandae qui pariatur tenetur non optio odio quis fugiat minima.</p>
<p>Bye</p>
</div>
【问题讨论】:
标签: javascript contenteditable rich-text-editor