Javascript 插入HTML/Text@Cursor Inline Div(NicEdit)

Javascript 插入HTML/Text@Cursor Inline Div(NicEdit),javascript,jquery,wysiwyg,editing,inject,Javascript,Jquery,Wysiwyg,Editing,Inject,因此,除了NicEdit之外,我还没有找到任何其他内联div编辑jquery/javascript软件。我想在游标所在的div中插入一个选项卡或任何html。我在这里偶然发现了一些代码: function insertAtCursor(editor, value){ var editor = nicEditors.findEditor(editor); var range = editor.getRng(); var editorF

因此,除了NicEdit之外,我还没有找到任何其他内联div编辑jquery/javascript软件。我想在游标所在的div中插入一个选项卡或任何html。我在这里偶然发现了一些代码:

function insertAtCursor(editor, value){
    var editor = nicEditors.findEditor(editor);
    var range = editor.getRng();                    
    var editorField = editor.selElm();
    editorField.nodeValue = editorField.nodeValue.substring(0, range.startOffset) +
                            value +
                            editorField.nodeValue.substring(range.endOffset, editorField.nodeValue.length);

}
但是,如果光标正好位于左侧(没有输入文本,在行首的右侧)(nodeValue变为null),则该选项不起作用。此外,当输入文本时,光标在多个浏览器中跳跃(比较Chrome和Firefox)


有没有支持内嵌标签(tab按钮)或div文本注入(或模仿div的文本区域?)的WYSIWYG?为什么这么难找到?

我找到的最好的内嵌编辑器是Google的WYSIWYG,它是开源javascript库Closure library的一部分:


不幸的是,它不是很容易安装,也没有很好的文档记录,但是如果你设法安装并运行它,它的功能与Gmail编辑器或Google站点编辑器大致相同,具有良好的浏览器兼容性和良好的内联功能。

以下代码修复了有关插入div或其他html元素以及编辑器中没有任何文本的问题:

if(editorField.nodeValue==null){
  editor.setContent('<strong>Your content</strong>');
}else{        
  editorField.nodeValue = editorField.nodeValue.substring(0, range.startOffset) +
                          '<strong>Your content</strong>' +
                          editorField.nodeValue.substring(range.endOffset, editorField.nodeValue.length);
  editor.setContent(editorField.nodeValue);
}
if(editorField.nodeValue==null){
setContent(“您的内容””);
}否则{
editorField.nodeValue=editorField.nodeValue.substring(0,range.startOffset)+
“您的内容”+
editorField.nodeValue.substring(range.endOffset,editorField.nodeValue.length);
editor.setContent(editorField.nodeValue);
}

查看我的答案。这是我创建的一个插件,用于在光标位置插入html,对我来说效果很好。

首先检查空节点,然后设置特定节点(editorField值)

var editor=nicEditors.findEditor(“cpMain_area2”);
var range=editor.getRng();
var editorField=editor.sellem();
if(editorField.nodeValue==null){
editorField.setContent(“”)
}
否则{
editorField.nodeValue=editorField.nodeValue.substring(0,range.startOffset)+A+editorField.nodeValue.substring(range.endOffset,editorField.nodeValue.length);
}

首先检查空节点,然后设置该特定节点

if (editorField.nodeValue == null) {
    editorField.setContent(DataFieldValue);
}
如果(editorField.nodeValue==null){editorField.setContent(DataFieldValue);}
if (editorField.nodeValue == null) {
    editorField.setContent(DataFieldValue);
}