我有一个 C# webforms 页面,我想将 html 元素拖到 Telerik radeditor 中。这部分按预期工作,除了当您将元素拖到编辑器上时,我希望 radeditor 中的光标位置跟随鼠标。它的设置类似于 Teleriks 网站上的这个演示。除了我使用的是列表视图而不是树视图。 http://demos.telerik.com/aspnet-ajax/editor/examples/treeviewandeditor/defaultcs.aspx
我曾尝试模拟对 radeditor 的点击以移动光标,但那里没有运气。有任何想法吗?
编辑:
上周我做了一个半工作的解决方案。它远非完美,但我决定分享它以防其他人想让它变得更好。
function controlDragging(sender, args) {
var event = args.get_domEvent();
var editor = $find("radEditLayout");
if (isMouseOverEditor(editor, event)) {
var x = event.pageX - event.offsetX;
var y = event.pageY - event.offsetY;
var node = editor.get_document().elementFromPoint(x, y);
if (node) {
setCaret(editor, node, 0);
}
}
}
function setCaret(editor, element, position) {
var selection = editor.getSelection(),
range = selection.getRange(true);
if (range.setStartAfter) {//W3 range
range.setStartAfter(element);
}
else { //IE7/8 textRange
range.moveToElementText(element);
range.moveStart('character', position);
}
range.collapse(true);
selection.selectRange(range);
}
function isMouseOverEditor(editor, event) {
return $telerik.isMouseOverElementEx(editor.get_contentAreaElement(), event);
}
还有什么建议吗??