【发布时间】:2016-01-24 22:35:07
【问题描述】:
我曾经有这样的代码:
this.insertNodeAtCaret = function(node) {
var sel, range, html;
function containerIsEditable(selection) {
return $(selection.anchorNode).parent().hasClass("editable");
}
if (window.getSelection) {
sel = window.getSelection();
// only if it is a caret otherwise it inserts
// anywhere!
if (containerIsEditable(sel) && sel.getRangeAt
&& sel.rangeCount) {
var previousPosition = sel.getRangeAt(0).startOffset;
sel.getRangeAt(0).insertNode(node);
}
}
else if (document.selection
&& document.selection.createRange) {
range = document.selection.createRange();
html = (node.nodeType == 3) ? node.data
: node.outerHTML;
range.pasteHTML(html);
}
};
但在 TypeScript 1.5 中,Selection 已从 Document (https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes) 中删除,所以我不知道如何让它工作。我尝试使用 window.getSelection() 但没有结果
任何帮助将不胜感激:)
谢谢, 迈克尔
【问题讨论】:
标签: typescript contenteditable caret