Contenteditable移动光标使用medium.js粘贴结束?

时间:2014-09-18 04:44:35

标签: javascript

来源:http://jakiestfu.github.io/Medium.js/docs/

目标:当我们在编辑器中粘贴内容时,仅允许<p>, <b>, <a>, and <i>个标记

步骤:

  1. 在网页中复制一些带有标题的大段落。 enter image description here

  2. 粘贴到medium.js富文本框中。 enter image description here

  3. 3.Cursor粘贴后不会移动到底。我们必须在粘贴文本的末尾移动。

    enter image description here

    请帮助解决此问题谢谢 或者我很感激,如果你与我分享任何其他插件,如medium.js。

3 个答案:

答案 0 :(得分:0)

我相信你发现的是Medium.js的一个问题。我继续在项目中创建了这个问题(这里是https://github.com/jakiestfu/Medium.js/issues/103)并计划尽快解决这个问题。再次感谢您的兴趣和反馈!

答案 1 :(得分:0)

我有一些contenteditable的经验,并在开发我自己的编辑器和使用CKeditor时发现了这个bug。它有时不仅在粘贴文本后发生,而且在修改DOM树之后也会发生。好吧,实际上,也许我完全不了解这个问题,但看起来非常接近。而且,不幸的是,我没有找到解决这个问题的方法,我认为它可能是浏览器的bug。我希望,我错了。

答案 2 :(得分:0)

我没有使用medium.js,但是我遇到了一个类似的问题,在自定义后,它没有移动到粘贴的末尾。

最后,我最终得到了这个组合,它完成了我需要做的事情。

这就是我的目标:

/** Paste the text **/
range.deleteContents();
range.insertNode(document.createTextNode(replacementText));

/** set the collapse to false, this will keep all text selected, updating the range object itself **/
range.collapse(false);
/** use the values of the updated range object to reset it start position **/
range.setStart(range.endContainer,range.endOffset);
/** collapse it to turn it into a single cursor **/
range.collapse(true);
/** remove everything **/
sel.removeAllRanges();
/** add our fresh range **/
sel.addRange(range);