我正在开发一个文本编辑器。我有一个内容可编辑<div>
,其中将放置<span>
元素和实际样式属性。
现在,我知道如何在这些span元素中放置一个插入符号,但是一旦我开始键入,文本将被打印在跨度内,div内部。
以下是插入符号的相关代码:
var rs = $( "#textEntry" ).insert( "span" ).set( "style" , style );
sel = window.getSelection();
sel.collapse( rs[ 0 ] , 0 );
rs[ 0 ].focus();
rs[ 0 ]
是当前的span元素。
我该如何克服这种行为?
P.S。 $
不是jQuery。
答案 0 :(得分:0)
玩完这个后,似乎解决方案如下:
有必要添加一些内部文本,然后在元素的第一个子节点(即TEXT节点)上设置插入符号,然后删除文本。插入符号将留在该位置,瞧!它有效。
var rs = $( "#textEntry" ).insert( "span" ).set( "style" , style ).html( "a" );
rs[ 0 ].focus();
if ( document.selection ) {
sel = document.selection.createRange();
sel.moveStart( 'character' , 0 );
sel.select();
}
else{
sel = window.getSelection();
sel.collapse( rs[ 0 ].firstChild , 0 );
}
rs.html( "" , true );
我很高兴看到其他解决方案,伙计们!