我有一个contenteditable div,我有一个span标记,其中包含一些文本。如何选择范围标记及其所有内容,因此当用户按退格键或删除时,范围及其内容将被删除?
更新:当我说选择时,我的意思是突出显示。很抱歉给您带来不便。
更新2:我正在思考'element.outerHTML.select()'。看看是否有帮助。
答案 0 :(得分:3)
在Firefox中,您拥有允许您执行此操作的Selection API。将其与DOM2 Range API和you have what you want:
结合使用var r = document.createRange();
r.selectNode(domElement);
var s = window.getSelection();
s.removeAllRanges();
s.addRange(r);
Selection API在未来的标准HTML Editing APIs中找到了它的方式,但它将在一段时间内推出,直到大多数浏览器都可用。
答案 1 :(得分:2)
昨天我回答your other question。我修改了伴随该答案的jsfiddle,please recheck it。在可编辑的范围内使用shift+delete
以显示对话框并“选择”当前范围。
答案 2 :(得分:1)
试试这个:
var span = document.getElementById("myspan");
span.onclick = function() {
var range = document.createRange();
range.selectNodeContents(span);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
};