我正在编写一个简单的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()