所以我除了NicEdit之外还没有找到任何其他的inline-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)。
是否有WYSIWYG支持内联选项卡(制表符按钮)或文本注入Divs(或模仿div的textareas?)为什么这么难找?
答案 0 :(得分:0)
我发现的最好的内联编辑器是Google的WYSIWYG,它是他们的开源JavaScript库的一部分,名为Closure Library:http://code.google.com/intl/sv-SE/closure/library/
不幸的是,设置并不是很容易,而且没有那么详细记录,但如果你设法启动并运行它具有与Gmail编辑器或Google Sites编辑器大致相同的功能,那么浏览器兼容性很好,一个不错的内联功能。
答案 1 :(得分:0)
以下代码修复了有关注入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);
}
答案 2 :(得分:0)
请参阅我的回答HERE。这是我创建的插件,用于在光标位置插入html,对我来说效果很好。
答案 3 :(得分:0)
首先检查Null节点然后设置该特定节点(editorField值)
var editor = nicEditors.findEditor("cpMain_area2");
var range = editor.getRng();
var editorField = editor.selElm();
if (editorField.nodeValue == null) {
editorField.setContent('<DIV><'+ A +'></DIV>')
}
else {
editorField.nodeValue = editorField.nodeValue.substring(0, range.startOffset) + A + editorField.nodeValue.substring(range.endOffset, editorField.nodeValue.length);
}
答案 4 :(得分:-1)
首先检查Null节点然后设置该特定节点
if (editorField.nodeValue == null) {
editorField.setContent(DataFieldValue);
}