document.execCommand()不适用于“<something>”等内容

时间:2016-01-21 13:18:32

标签: javascript jquery

我正在编写一个简单的Web文本编辑器,用户可以在其中编写一些文本/代码,当用户通过鼠标选择/突出显示部分内容并单击按钮时,所选/突出显示的文本/代码片段将在{{{ 1}}动态标记(类似于Stack Overflow编辑器)。要做到这一点,我在js

下面使用
<code></code>

只要用户内容不包含$('#AppltCodeWrap').click (function (){ var range = window.getSelection().getRangeAt(0), targetContent = range.commonAncestorContainer.innerHTML; document.execCommand('insertHTML', false, '<code class="prettyprint">' + targetContent + '</code>'); //.... }); 等文本,此方法就可以正常使用。当用户文本包含<stdio.h>时,上述javascript会删除此类文本(我的意思是仅<stdio.h>,其余所选内容仍未受损)。

另请注意,如果用户文本/代码包含html标记,例如<stdio.h>,则javascript工作正常。我该如何解决这个问题?

我正在使用<div><span>Hello</span><div>作为文本编辑器。我也使用下面而不是<div contenteditable = true></div>来支持换行符。

document.getSelection()

0 个答案:

没有答案