我有一个可编辑的div,并使用按钮将图像插入到div中。目前,我只是使用document.getElementById('elementid').innerHTML. +=; 来将图像添加到div的末尾。我想把图像输入到光标所在的位置。我该怎么做呢?
谢谢
谢谢
在光标处插入元素并不太难。以下函数可在所有主要浏览器中将节点插入到光标处(如果选择了内容,则在选择结束处插入):
function insertNodeAfterSelection(node) {
var sel, range, html;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.collapse(false);
range.insertNode(node);
}
} else if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
range.collapse(false);
html = (node.nodeType == 3) ? node.data : node.outerHTML;
range.pasteHTML(html);
}
}
Range
在大多数方面都比 TextRange
强得多,除了将边界移动以包含单词和移动到文档中相邻的文本之外。虽然目前还没有选择对象的标准(WHATWG 正在制定),但是 IE 的选择与其他浏览器中的选择相比并不占优势。 - Tim Down这个有帮助吗:http://jsfiddle.net/8akDr/