标签: inserthtml

当插入符号时,Chrome execCommand'insertHTML'会插入节点外部

我的任务是在当前插入位置的contentEditable div中插入一个空的span节点.

以下内容在Firefox 22.0上没有任何问题:

HTML

<div class="parent" contentEditable=true>
    <div>text</div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

$('.parent').on("keyup", function(e){
    if (e.which == 73) {
       node = '<span class="new"></span>';
       document.execCommand('insertHtml', null, node);
   }
});
Run Code Online (Sandbox Code Playgroud)

要重现:将插入符号放在单词"text"的某个位置,然后按"i"键在当前选择中插入空跨度.

请参阅:http://jsfiddle.net/amirisnino/pZecx/2/

例:

在单词中间按"i"键时

预期结果:

<div class="parent" contentEditable=true>
    <div>tei<span class="new"></span>xt</div>
</div>
Run Code Online (Sandbox Code Playgroud)

会发生什么?

<div class="parent" contentEditable=true>
    <div>teixt</div>
    <span class="new"></span>
    <div><br></div>
</div>
Run Code Online (Sandbox Code Playgroud)

任何有关这方面的帮助将不胜感激.先感谢您.

html javascript google-chrome execcommand inserthtml

6
推荐指数
1
解决办法
5421
查看次数

如何将html元素放在Ckeditor中的光标位置?

我很难成功地将要拖放的html元素放入Ckeditor中。到目前为止,我刚刚能够使用“ setData”将其放置在内容的末尾。但我想将其放置在光标所在的位置。

我的意思是,而不是这样做:

<p>My content with <span>spans</span>, <a>links</a>, etc.</p><span>The html I am drag/droping</span>
Run Code Online (Sandbox Code Playgroud)

我想做这个 :

<p>My content with <span>spans</span>, <span>The html I am drag/droping</span>, <a>links</a>, etc.</p>
Run Code Online (Sandbox Code Playgroud)

现在,我的代码如下所示:

CKEDITOR.instances['myContent'].insertHtml(' <span>The html I am drag/droping</span>');
Run Code Online (Sandbox Code Playgroud)

我已经尝试过insertText,但从未成功。然后,我尝试了insertHtml,但它仅在IE o_O中有效。

您对如何解决有任何想法吗?那将是很大的帮助!谢谢。

javascript position cursor ckeditor inserthtml

5
推荐指数
1
解决办法
2063
查看次数